问题 问答题

请编写程序,从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 i;
int cnt1,cnt2,xx[N];
long j=0;
float pj;
FILE *fw;
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.2fkn",cnt1,cnt2,pj);
fclose(fw);

答案

参考答案:

for(i=0,j=0,cntA=0,cntB=0;i<N;i++)

{ /*循环以遍历数组xx中的所有数*/

if(xx[i]%B)

cntA++; /*若当前数为奇数,则让计数值cntA增A*/

else

cntB++; /*否则让计数值cntB增A*/

if(i%B==0)

j+=xx[i]; /*当前数下标为偶数,将之累加到j中*/

}

pj=(float)j/(N/B); /*求下标为偶数的平均值*/

单项选择题
单项选择题