数学建模社区-数学中国

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

作者: lavender    时间: 2005-5-8 22:14
标题: [求助]C做的一个程序,读不进去数据哦~~~
<>这是求矩阵的列的平均值的程序</P>
5 [' o' e* I* c$ ?) r<>#include&lt;stdio.h&gt;
" k  E- v% P9 t4 N. z% E# ]#define N 1008 j( R% p0 o0 n+ D: X2 a
#define M 20</P>
" l! J5 e2 A, ?5 g0 s<>void main()$ {$ R( h5 R  M; H- N. K: u
{9 l; v, Z. x. W1 T4 e" s
FILE *fa,*fb;0 }% N' Y4 H, K! v; V! x/ A
char filename[30];
5 ?4 l( @7 k, W$ R  z int n,m,i,j;
: e' p) B, L) [; p% k; z" B$ H double a[N*M]={0.0},b[M]={0.0};</P>
' R0 b& @5 C# R<> printf("lease input the number of columns and lines of matrix:n,m\n",N,M);
9 ~. a  _. U; K& H# H% E scanf("%d%d",&amp;n,&amp;m);</P># a1 M7 v, c. `- b; L) n# S; u
<> while(n&gt;N||n&lt;=0||m&gt;M||m&lt;=0)
; Y2 T4 m7 q0 R) Y, X5 D4 g4 p {
$ f5 I9 e2 Q8 `+ W; E. G1 {+ Q  printf("lease input number of matrix:n(0&lt;n&lt;N),m(0&lt;m&lt;M)again!\n",N,M);
. q" G" `% h: i1 F, `6 L: Z( H  scanf("%d%d",&amp;n,&amp;m);
9 Y- o* R/ K7 T! Y: W. P }</P>6 N( [6 e" d( N; A
<> printf("lease input a filename:\n");
) R2 g6 L# X' v  r# |; y printf("\n");9 o" ?* t3 |, w" |7 y. x: [& b' j
scanf("%s",filename);</P>
: K1 O  C$ r. S6 O6 V# I: k<> if((fa=fopen(filename,"r"))==NULL)4 \; T4 Y+ P( _# E  L6 w' X5 _* v
{
- v) v  r+ m% n; h) `  printf("File is not exist.Please creat a file.\n");. R3 s3 n. Y) V" ?
  exit(0);% c1 i; W3 N' `* c+ e, d
}
& @6 d: Y1 d+ e# H2 ]" w7 r
( z8 ]  q! K6 j4 \! s  while(!feof(fa))
6 c& ^5 c4 r$ G- |  }+ S4 P  {& }" k; P6 W- e; S' o- B! X$ C. p
    for(i=0;i&lt;m;i++)
$ C6 f5 d' \' Z: X" d+ d+ X9 ~2 d! P7 ?. ?    fscanf(fa,"%f",&amp;a);/ C6 t1 x& v0 m# L$ g
    printf("%f",a);
4 F. L8 W7 k7 P9 r$ M( \* W. N  }</P>
) E% k# F9 o& A1 j6 \; d<>  for (i=0;i&lt;n;i++): ~+ w5 G0 P6 u/ V' v( v9 I' z
    for (j=0;j&lt;m;j++)
$ F  d9 q5 N" m4 J8 j      if (j==m-1) printf("%15.2f\n",a[i*m+j]);
7 {* L' d; n$ {3 V! h/ w: d      else printf("%15.2f",a[i*m+j]);</P>
# F. O3 j$ O# u' i, `<>  for(i=0;i&lt;m;i++)# O- p" M7 c$ a/ ^  {- a8 P# U
  {
  w5 N% J' |, ?9 s+ O; [   for(j=0;j&lt;n;j++)
3 b& Y& X: _# h8 o6 R3 P   b+=1.0/n*a[i+j*m];0 y6 T- P- c& \' Y
  }</P>- y: x% o; J0 c+ g$ A+ G
<>
  U9 Y" \+ t: s- V3 P  fclose(fa);</P>
$ z1 |7 p/ o( U% ]<>  if((fb=fopen("result.txt","w"))==NULL)
& N6 [; J: H  f4 _( J: X3 ?  {
5 h* w! l; [1 C$ B- a   printf("Result file do not exist.\n");8 k  A; H  S1 P/ j: ^; q- Q. C! T& z
   exit(0);
% d/ A+ ~$ S8 a5 v& k  }</P>  \4 I" u% x& E7 X- d; w7 X
<>  else
8 f% |" d  D5 @8 j0 A; T  {
  @/ l1 _! t% T* A   fprintf(fb,"The average of matrix:\n");
% N/ d! I$ s1 P- S8 j/ i: l4 j   fprintf(fb,"\n");- f' I5 v" Y* e7 _6 P$ |# U$ e
   for(i=0;i&lt;m;i++)
, A. I: y% p7 u/ Q7 H$ @3 P/ s   fprintf(fb,"%15.3f",b);" m  d3 \0 @7 c! e1 }
   fprintf(fb,"\n");; ^0 }$ w1 o- J- o. c. h9 }
  }9 k- v2 Z. P& I  G
  fclose(fb);
4 z( @/ Z1 Z' @1 ^8 j  printf("Have done!The result in file:result.txt\n");</P>
* a: S2 Z: y8 C! c  R<>}</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