数学建模社区-数学中国

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

作者: lavender    时间: 2005-5-8 22:14
标题: [求助]C做的一个程序,读不进去数据哦~~~
<>这是求矩阵的列的平均值的程序</P>
0 `  m+ \9 U0 a<>#include&lt;stdio.h&gt;) G  a7 Q) }# g* G$ U1 c; _
#define N 100  ~' ]5 ^* B$ ?, h4 @
#define M 20</P>
9 q% {# C, X: J: A: X) D; X" s$ W: o<>void main()
- R* F. S' v- T/ ]{
+ {, _! r$ X  X% w: M! X* j FILE *fa,*fb;  T: y  h5 {% i9 f3 Z
char filename[30];. _5 \; f" R; b' _# [
int n,m,i,j;9 @. ^4 R' `- I0 M
double a[N*M]={0.0},b[M]={0.0};</P>0 _( d8 l3 L5 S
<> printf("lease input the number of columns and lines of matrix:n,m\n",N,M);0 F( d0 J, J, R! |! a' t1 o+ H2 s
scanf("%d%d",&amp;n,&amp;m);</P>, R- q% a& C% J1 O
<> while(n&gt;N||n&lt;=0||m&gt;M||m&lt;=0)8 ]% ^+ w2 x6 J! }+ T
{
' {1 \3 D; k7 m  printf("lease input number of matrix:n(0&lt;n&lt;N),m(0&lt;m&lt;M)again!\n",N,M);
3 {! [$ Q3 I1 H' ]2 q# e  scanf("%d%d",&amp;n,&amp;m);' h6 ~/ k# P$ e7 {8 H
}</P>0 H! e% ^3 S; @& x  R0 ]
<> printf("lease input a filename:\n");
' b2 Z8 ]+ T) U+ q3 Y/ y printf("\n");
) f* ~* c" p: p# D6 v3 u6 K scanf("%s",filename);</P>
! i- }$ S, d. ?' y, r<> if((fa=fopen(filename,"r"))==NULL)5 K% N% i9 a0 p, T8 d- R" {
{% G6 T! l5 ?0 V% t: z( {6 Z
  printf("File is not exist.Please creat a file.\n");) _& k# y3 |% T
  exit(0);
8 i" M0 F$ ~9 \; Q }& L- U! C0 J( q- @7 }- r9 n3 X/ V) r& p

8 c+ U+ p9 b4 p' t% T  F  while(!feof(fa))
: Y. g5 L7 x& _  {0 S8 C# K- ^. |; q9 z
    for(i=0;i&lt;m;i++)- L7 a/ N( ?# Q7 `1 p1 f" M
    fscanf(fa,"%f",&amp;a);
$ T& t, y( E. q0 \4 a' Q! X    printf("%f",a);$ l6 F# a6 Z0 U0 _& F4 @
  }</P>
8 }/ M3 w/ X: w" T* V<>  for (i=0;i&lt;n;i++)4 O& A; e" U8 K+ p  P' S
    for (j=0;j&lt;m;j++)3 ]8 n9 O2 ^% P) p; o- ?, R( Y
      if (j==m-1) printf("%15.2f\n",a[i*m+j]);
* z0 @5 h2 E2 Z. A      else printf("%15.2f",a[i*m+j]);</P>0 K0 L7 S) x2 s% l1 S2 D+ ]
<>  for(i=0;i&lt;m;i++)( w9 t  q3 E  F+ p: X- `( `; r; P
  {0 a% S% }: Z7 s; a& k( q
   for(j=0;j&lt;n;j++)
9 b% L6 I4 s) B/ |. A! W   b+=1.0/n*a[i+j*m];
/ U/ Y) o% d5 g/ l& p0 ^  }</P>
  @6 P& z5 c7 p; l8 `6 {* r<>
' q5 ?3 r4 Q+ H+ r! f( I% B  fclose(fa);</P>
4 v& h/ Y8 H) [' o7 K<>  if((fb=fopen("result.txt","w"))==NULL)6 R/ R7 X" p3 t1 f5 q: @
  {6 Q) K1 _$ ]6 T9 h) N) L
   printf("Result file do not exist.\n");
) o# D& |* k' Y+ ~; t1 |8 y   exit(0);, x& ^- M3 w. i$ k" W6 h
  }</P>
8 e0 e$ v+ n4 Y) g0 u; J% W<>  else
' y/ }5 M8 H2 D% s2 u! g) R  X- k) H  {9 O( o7 l2 ^/ f' m
   fprintf(fb,"The average of matrix:\n");
! `) @/ A% u& E0 ?   fprintf(fb,"\n");. X/ G: x: M8 w, C1 o6 j; N' t1 b
   for(i=0;i&lt;m;i++)3 M5 \: I. S0 M- d' _* C. ^3 T
   fprintf(fb,"%15.3f",b);. B0 F4 j( H, D1 f2 p5 c
   fprintf(fb,"\n");
$ r; U0 @0 w) B  }1 L+ \# R8 I) R# a4 a& \8 F
  fclose(fb);
  M8 P8 P7 X6 Y+ F  m  printf("Have done!The result in file:result.txt\n");</P>
4 ?3 \5 {- ~1 t4 N<>}</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