54、请编制程序,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶
数的个数cnt2以及数级xx值为偶数的元素值的算术平均值pj(保留2位小数)。
结果cnt1,cnt2,pj输出到out.dat中。
部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。
#include<conio.h>
#include<stdio.h>
#define N 200

void read_dat(int xx[N])
{
int i,j;
FILE *fp;

fp=fopen("in.dat","r");
for(i=0;i<20;i++)
{for(j=0;j<10;j++)
{fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d ",xx[i*10+j]);
}
printf("\n");
}
fclose(fp);
}

void main()
{
int cnt1,cnt2,xx[N];
float pj;
FILE *fw;

clrscr();
fw=fopen("out.dat","w");
read_dat(xx);


printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);
fclose(fw);
}

/* 注:已是很简单了吧!*/
void main()
{
int cnt1,cnt2,xx[N];
float pj;
FILE *fw;
int i;

clrscr();
fw=fopen("out.dat","w");
read_dat(xx);

cnt1=cnt2=0;
pj=0.0;
for(i=0;i<N;i++)
if(xx[i]%2) cnt1++;
else {cnt2++;pj+=xx[i];}
pj=(float)((long)(pj*100/cnt2))/100;

printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);
fclose(fw);
}

返回南开百题目录

www.163164.com 联系QQ:3149886