数学建模社区-数学中国

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

作者: lavender    时间: 2005-5-8 22:14
标题: [求助]C做的一个程序,读不进去数据哦~~~
<>这是求矩阵的列的平均值的程序</P>: r) K, |' {4 a, M- Y+ v+ L: J/ D* W% R
<>#include&lt;stdio.h&gt;
( v2 w- ^* t9 {9 a4 ?4 E& e#define N 1008 Z4 K! ?, |0 F* q7 C# j9 U0 m/ _
#define M 20</P>
+ v, |% s! t; T. p, V4 B# @<>void main()
9 I) l+ V2 Y' K; w# {! n* K{& Q$ t  O9 z2 c5 ^
FILE *fa,*fb;5 |- V( {: t0 {! f: U
char filename[30];6 h$ D+ A5 y1 Q3 V$ n
int n,m,i,j;! T# z; i* k: C' ?0 s* k8 s
double a[N*M]={0.0},b[M]={0.0};</P># `* t) a9 z( b8 j* m; ^8 N
<> printf("lease input the number of columns and lines of matrix:n,m\n",N,M);+ J4 Y+ _/ X# M6 i( l) k
scanf("%d%d",&amp;n,&amp;m);</P>- A- n! Z6 B: ]) Z$ b$ G3 ?
<> while(n&gt;N||n&lt;=0||m&gt;M||m&lt;=0)" U2 k( g; b$ Z, e
{, }9 b$ V; _' P$ C: f
  printf("lease input number of matrix:n(0&lt;n&lt;N),m(0&lt;m&lt;M)again!\n",N,M);
# ^2 S; \  M3 I$ A' m  scanf("%d%d",&amp;n,&amp;m);+ t! W, k0 W* R3 e# q. }
}</P>
: Y3 O) i$ {( Z1 M<> printf("lease input a filename:\n");
8 [1 G: C: N2 a7 O: a7 ~/ M printf("\n");
( U+ ^8 f9 H* z# }& F scanf("%s",filename);</P>
( b4 G: ?/ x) F7 b<> if((fa=fopen(filename,"r"))==NULL)
4 n3 r  u: y" [) x {) v( t4 a. z$ V2 t1 \8 q  c7 d6 `
  printf("File is not exist.Please creat a file.\n");, Y/ Z% a3 _7 K- _3 M& _
  exit(0);
( x1 S) Y9 Z# k  M0 A. f. Q2 N }9 }$ E, P* b0 t3 ^. n
: m& ~# S3 a  S
  while(!feof(fa))+ z4 ^: u! c/ }# h  k5 p
  {
3 s2 J) N+ e& r) Y- s0 J    for(i=0;i&lt;m;i++)
  @6 ?' |- S! \& g    fscanf(fa,"%f",&amp;a);3 C7 b. \  ~! t
    printf("%f",a);7 K. v# Y* N5 Z5 t# F
  }</P>
4 X7 t0 p' C; |/ Z1 k, r( b9 Y<>  for (i=0;i&lt;n;i++)
" S6 c; z: {/ V! f7 s    for (j=0;j&lt;m;j++)
3 O9 }1 x* G3 ?2 L; f6 Z/ G, z      if (j==m-1) printf("%15.2f\n",a[i*m+j]);
- P+ c3 {" @/ r      else printf("%15.2f",a[i*m+j]);</P>  l* j# f4 }1 m/ N' T# z
<>  for(i=0;i&lt;m;i++)4 k* t2 U, p( ]) c7 Q- ~, S9 ?
  {8 Z+ d2 u& \& F7 B# J- c4 o
   for(j=0;j&lt;n;j++): O; d& l& G5 n
   b+=1.0/n*a[i+j*m];4 C  t4 @. R9 E! W
  }</P>% y' e4 ?  p0 B. U  u9 ?6 l, z
<>9 H7 y- q4 f" B" q, T9 l
  fclose(fa);</P>! v  K8 J+ X4 H" H" j/ p" K! |
<>  if((fb=fopen("result.txt","w"))==NULL)
7 K6 B" p& U! b# L8 ?8 A% z. `  {- b! C$ O6 x& m% q
   printf("Result file do not exist.\n");
. p# ?; I6 z+ Q, U   exit(0);) W$ L2 d# k1 O+ G  }
  }</P>( {+ D4 T0 g; v
<>  else
' V' p# @5 C! `$ e2 [8 x( b" @  {& A) v5 X' y) b0 F1 @
   fprintf(fb,"The average of matrix:\n");
8 u5 G8 X/ I! S$ ^6 f   fprintf(fb,"\n");
0 ?% y* w. v. z: r   for(i=0;i&lt;m;i++)
( e; Q* M/ Q( R% C7 e; O2 v   fprintf(fb,"%15.3f",b);
* B" H. q5 E# P% k   fprintf(fb,"\n");4 i7 `, \$ X& t1 \  Z) |
  }
8 H/ d. q# J: M  fclose(fb);
8 z8 Z  Z  F/ `& E  j8 P  printf("Have done!The result in file:result.txt\n");</P>
) ~; Q8 W7 E$ @: U<>}</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