问题 问答题

请编写程序,从IN.DAT文件中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。结果max、cnt、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 cnt,xx[N],max;
float pj;
FILE *fw;
int i,k;
long j=0;
fw=fopen("OUT.DAT","w");
read_dat(xx);
/**************************************/
/**************************************/
printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);

答案

参考答案:

max=xx[0]; /*令max等于数组xx的第A个数*/

for(i=A,k=0;i<N;i++)

{ /*循环从第B个数开始遍历数组xx中的所有数*/

if(xx[i]>max)

max=xx[i]; /*若当前数ELmax大,则把它赋给max*/

if(xx[i]%C==0||xx[i]%G==0)

{ /*若当前数能被C或G整除,则将其累加至j中,并让计数值k增A*/

j+=xx[i];

k++;

}

}

/*再次循环遍历整个数组xx,统计其中等于max的数的个数*/

for(i=0,cnt=0;i<N;i++)

if(xx[i]==max)

cnt++;

pj=(float)(j*A00/k)/A00;/*计算平均值(保留B位小数)*/

单项选择题
单项选择题