文件IN.DAT中存有200个整数,函数read_dat(int inBuf[MAX])负责将这200个数读到数组inBuf[]中。请编制程序,要求;求出数组inBuf[]中奇数的个数countl和偶数的个数count2,以及数组inBuf下标为奇数的元素

admin2012-07-20  20

问题 文件IN.DAT中存有200个整数,函数read_dat(int inBuf[MAX])负责将这200个数读到数组inBuf[]中。请编制程序,要求;求出数组inBuf[]中奇数的个数countl和偶数的个数count2,以及数组inBuf下标为奇数的元素值的算术平均值average(保留2为小数),结构输出到OUT.DAT中。
部分程序、读函数read_dat(int inBuf[MAX])及输出格式已给出。
试题程序;
#include
#include
#define MAX 200
void read_dat(int inBuf[MAX])
{
  int i,j;
  FILE*fp;
  fp=fopen("IN.DAT","rf");
  for(i=0;i<20;i++)
  {
    for(j=0;j<10;j++)
    {
    fscanf(fp,"% d,",&inBuf[i*10+j]);
    printf("%d",inBuf[i*10+j]);
    }
    printf("\n");
    }
    fclose(fp);
  }
  void main()
  {
  int countl,count2,inBuf[MAX];
  float average;
  FILE*fw;
  int i,k=0;
  long j;
  system("CLS");
  fw=fopen("OUT.DAT","w");
  read dat(inBuf);
  average=0;
  count1=0;
  count2=0;
  printf("\n\ncount1=%d,count2=%d,average=%6.2f\n",count1,count2,average);
fprintf(fw,"%d\n%d\n%6.2f\n",count1,count2,average);
  fclose(fw);
}

选项

答案 for(1=0;i
解析 本题主要考查依据数组下标对数据进行筛选及平均值的求法。程序基本步骤是;1.对200个数进行遍历,如果inBuf是奇数,则countl加1;否则,count2加1。如果当前下标是奇数,则k加1,并将inBuf累加到average上。2.所有数都判断完成后average=average/k得到平均值。
转载请注明原文地址:https://kaotiyun.com/show/Y24Z777K
0

最新回复(0)