将文件IN.DAT中的200个整数读至数组XX中。请编制isValue()函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组XX下标为奇数的元素值的算术平均值pj。结果cnt1、cnt2、pj输出到OUT.DAT中。
注意:部分源程序存在文件PROG1.C文件中。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数read_dat()和输出函数writeDat()的内容。
[试题程序]
#include
#define N 200
int cnt1,cnt2,XX[N];
float pj;/。平均值。/
void writeDat();
void jsValue()
void read_dat(int XX[N])
int i,j;
FILE *fp;
fp=fopen(“in.dat”,"r");
for(i=0;i<20;i++)
forj=0;j<10;j++)
fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d",xx[i*10+j]);
printf("\n");
fclose(fp);
void main()
read_dat(xx);
jsValue();
printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);
writeDat();
void writeDat()
FILE *fw;
fw=fopen(“out.dat”,“w”);
fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);
fclose(fw);
参考答案:voicl jsValue()
{int i; /*定义变量*/
for(i=0;i<N;i++) /*统计求和*/
{if(xx[i]%2==1)cnt1++;
else cnt2++;
if(i%2==1)pj+=xx[i];
}
pj/=(N/2);/*求平均值*/
}
解析: 本题要求统计数组中奇数和偶数的个数,并求下标为奇数的元素值的平均值。依据题意,应依次取得相应已知数,统计奇、偶数个数,若为奇数,则计数器变量cnt1加1;否则cnt2加1,同时下标为奇数的数参与计算平均值pj。