数学建模社区-数学中国
标题:
[求助]C做的一个程序,读不进去数据哦~~~
[打印本页]
作者:
lavender
时间:
2005-5-8 22:14
标题:
[求助]C做的一个程序,读不进去数据哦~~~
<
>这是求矩阵的列的平均值的程序</P>
* b. v+ Y% ^) q+ p
<
>#include<stdio.h>
# y; p& F, E( k( [
#define N 100
8 z% s# U U! q+ j# {4 o
#define M 20</P>
. Y$ J" b" ~0 g
<
>void main()
0 Q+ K0 |- ]( E i/ a
{
/ ]0 l9 I, ?( ^ c
FILE *fa,*fb;
# Y: R0 K: C% y# A# U8 [0 `
char filename[30];
9 I# e# G q+ o$ k* h; Y
int n,m,i,j;
1 _% z/ |% q+ Z; T: E1 @5 A: h: y
double a[N*M]={0.0},b[M]={0.0};</P>
1 O( g1 q0 h7 U4 V9 s/ d' F
<
> printf("
lease input the number of columns and lines of matrix:n,m\n",N,M);
2 n& e, p [2 b2 Q1 V
scanf("%d%d",&n,&m);</P>
# \; W$ ]# R7 m0 E: @: H; O
<
> while(n>N||n<=0||m>M||m<=0)
. m' l( l3 ]! n u! j5 r: \; f8 U
{
0 p" _$ N: N7 O: p
printf("
lease input number of matrix:n(0<n<N),m(0<m<M)again!\n",N,M);
2 r" B+ M% f5 W8 C1 C; l
scanf("%d%d",&n,&m);
' [5 ^; \/ Y& B$ r! A7 {5 a
}</P>
0 Q3 K6 P/ U: p5 C
<
> printf("
lease input a filename:\n");
8 R4 J8 c) {1 Z2 O5 B# X
printf("\n");
# ^3 C# |$ t" T& `: j! W
scanf("%s",filename);</P>
: v: z o; I) r. j, ]
<
> if((fa=fopen(filename,"r"))==NULL)
2 |$ I" P% A7 m2 V
{
6 d7 j0 _; d" ~% h0 S
printf("File is not exist.Please creat a file.\n");
3 J$ l: s# A7 H" K9 h9 Z
exit(0);
# t) n a5 @+ [- Z
}
9 C* G% n2 m7 A# m9 a
! ?2 Y) L0 l u
while(!feof(fa))
) @7 B5 }+ ], X6 I2 Y1 h
{
- f7 n* _" k+ Z; r( L: {
for(i=0;i<m;i++)
" B# Y! N+ h# s6 C) Q# M0 k
fscanf(fa,"%f",&a
);
( u H: k$ u3 i6 r1 {
printf("%f",a
);
. F2 G7 f" w# e& H h7 j7 M6 z/ i
}</P>
+ Q7 S, ?+ S8 x% b# \2 r) ~7 ]8 T/ \6 }! b
<
> for (i=0;i<n;i++)
) e( a8 ~6 ~1 l
for (j=0;j<m;j++)
5 q, \4 k7 X/ m, g
if (j==m-1) printf("%15.2f\n",a[i*m+j]);
4 a9 K" G! \; J- C# U+ E% V
else printf("%15.2f",a[i*m+j]);</P>
; q! ~2 p* V* b; B
<
> for(i=0;i<m;i++)
8 s4 o2 K Q/ x
{
# K1 p( N! Q. t. D/ C
for(j=0;j<n;j++)
- j7 q) p6 q% w# {- D7 @1 g
b
+=1.0/n*a[i+j*m];
- o4 Y% g/ j7 J G+ _' x) W
}</P>
; |9 C9 l; u: v& x. \
<
>
- Q5 B4 ^% f' H
fclose(fa);</P>
0 `) y6 ~7 g( b3 I
<
> if((fb=fopen("result.txt","w"))==NULL)
W- w- R3 z3 Q8 p% [) `3 _
{
4 M( R* {' o+ b2 `2 I
printf("Result file do not exist.\n");
3 y! T$ {3 g, S) t6 h, r6 S- G% b) M
exit(0);
8 N6 T$ {; _- `, |2 ?( J- S% t
}</P>
/ R& Y7 L0 S/ }1 U
<
> else
/ U# s/ [4 y3 W$ a/ b
{
+ _; N% o& h" v, w1 p2 |
fprintf(fb,"The average of matrix:\n");
: O c7 {! Q7 P6 h
fprintf(fb,"\n");
# p3 y6 \( U/ f; b8 E
for(i=0;i<m;i++)
4 z, c: w, x% J$ `! R
fprintf(fb,"%15.3f",b
);
. I/ H4 _# `/ p; K) {
fprintf(fb,"\n");
0 I/ A+ r- F/ e' z
}
7 z" K/ A4 l( n
fclose(fb);
& `4 ?: A9 p2 D% i( N) L
printf("Have done!The result in file:result.txt\n");</P>
3 ]; q6 M3 ^2 w. V7 ?3 Q
<
>}</P>
作者:
ilikenba
时间:
2005-5-12 10:19
<
>可以读入数据呀!</P><
>scanf("%d%d",&n,&m);这条语句中"%d%d"的格式要求是你输入数据的时候必须以空格作为两个数据的间隔符!如果想用逗号作间隔符可以改成"%d,%d",你一定是在输两个数据的时候中间的间隔符弄错了,造成不能读入!</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5