数学建模社区-数学中国

标题: [求助]C做的一个程序,读不进去数据哦~~~ [打印本页]

作者: lavender    时间: 2005-5-8 22:14
标题: [求助]C做的一个程序,读不进去数据哦~~~
<>这是求矩阵的列的平均值的程序</P>2 [- I1 [0 e' p8 v5 n, N+ A" Q4 E$ c
<>#include&lt;stdio.h&gt;
) k9 u3 Y3 h; s  g1 E' u% w#define N 1003 O- j2 y5 @3 f, }4 [
#define M 20</P>
1 v2 |  A1 |: Q: }3 K, s<>void main()+ k) e; {* h; ]
{
# I4 {7 C% V* \; g FILE *fa,*fb;
2 B! q- e1 D) r6 t char filename[30];) H: A% V* U3 a( W% _
int n,m,i,j;  F3 r" i! C8 J4 X% ^
double a[N*M]={0.0},b[M]={0.0};</P>
" E: G! e, @* _7 v5 N<> printf("lease input the number of columns and lines of matrix:n,m\n",N,M);
3 }; `  s8 q/ {' C$ m scanf("%d%d",&amp;n,&amp;m);</P>
1 q& s5 @, u+ J% U3 A1 E<> while(n&gt;N||n&lt;=0||m&gt;M||m&lt;=0)# A* f. I& t4 R! Q- B1 K
{& G8 U/ N  D) p' h
  printf("lease input number of matrix:n(0&lt;n&lt;N),m(0&lt;m&lt;M)again!\n",N,M);
7 P, D( R0 l' m* X  V) \) `  scanf("%d%d",&amp;n,&amp;m);
; A7 E! z! T* U }</P>
% @4 a" s  K% u9 C<> printf("lease input a filename:\n");$ N$ ~( j8 W4 z2 \" \5 p* m
printf("\n");& h- y) a) Y% Q5 K
scanf("%s",filename);</P>6 p* n6 J! `! l! F2 W/ B; O6 a
<> if((fa=fopen(filename,"r"))==NULL)8 y( w, q; x6 _) ?, L2 Q# |8 y
{7 X$ j( E; S5 {) s5 G" G
  printf("File is not exist.Please creat a file.\n");
: Q& q1 C# l4 F; \  exit(0);8 L4 m4 j( h; B% C6 E; ^# t8 N
}
0 y* s1 K* U, }6 i# k" ~
+ X6 s  |' ^& z, V/ l  while(!feof(fa)); R( {% E) D/ q; G7 o0 e" s
  {* {. L. b+ W; `
    for(i=0;i&lt;m;i++)  T' L1 v+ M, O0 R7 o4 q
    fscanf(fa,"%f",&amp;a);3 B+ Q9 d' X" {- e
    printf("%f",a);8 K9 }5 Z$ L& i( p$ s
  }</P>! u1 n' L' q2 K* Y
<>  for (i=0;i&lt;n;i++)
! |. W+ k- r! |9 x% z5 @  y    for (j=0;j&lt;m;j++)
7 a1 ^& }, F* v  _" V      if (j==m-1) printf("%15.2f\n",a[i*m+j]);
0 c; S9 n8 R% t& s. E8 `& j      else printf("%15.2f",a[i*m+j]);</P>6 \' P. Z8 _0 j; |+ D! J! x
<>  for(i=0;i&lt;m;i++)
7 @. Y8 [2 F$ L1 S* {4 p1 |" X$ m! ]  {
) ^0 `2 L: B7 L2 e  s7 ]5 K, a   for(j=0;j&lt;n;j++)
0 o2 v5 I0 b3 b" ^; ]4 q   b+=1.0/n*a[i+j*m];
0 J$ r/ X8 j1 v  }</P>
0 I+ c/ B  ]: T! w, q/ F<>% C: R) W8 r8 I7 B- E3 r/ ^- @  b
  fclose(fa);</P>& \1 L( v4 q& U' \+ E. l
<>  if((fb=fopen("result.txt","w"))==NULL)% w  H+ I0 V4 D0 `- q2 T
  {
# s5 z, ~4 ^) \6 a% @  d9 T3 H   printf("Result file do not exist.\n");5 v/ o1 ]' I" E0 ?9 q, m1 ^
   exit(0);
/ o% J% S8 P4 P5 ?+ P" B  }</P>
) O* f+ j. k# J/ U<>  else5 L; `6 v$ b$ G/ u. q2 ?
  {& X* R3 w0 V- A
   fprintf(fb,"The average of matrix:\n");9 F/ a# h2 U! i5 D" M7 ?6 O
   fprintf(fb,"\n");! h$ r; h7 w0 E8 A3 n
   for(i=0;i&lt;m;i++)
2 w# ^6 b9 G2 N3 t4 K# D   fprintf(fb,"%15.3f",b);
3 s: w  v; S3 o/ @  l3 Q   fprintf(fb,"\n");. u/ X7 [% R. H% `
  }" u; E0 s: ]8 `2 L; Y9 ^* h7 A
  fclose(fb);8 ?4 D6 L6 A7 P" l) D& W) `
  printf("Have done!The result in file:result.txt\n");</P>  \5 b& I1 M# G2 Z
<>}</P>
作者: ilikenba    时间: 2005-5-12 10:19
<>可以读入数据呀!</P><>scanf("%d%d",&amp;n,&amp;m);这条语句中"%d%d"的格式要求是你输入数据的时候必须以空格作为两个数据的间隔符!如果想用逗号作间隔符可以改成"%d,%d",你一定是在输两个数据的时候中间的间隔符弄错了,造成不能读入!</P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5