函数ReadData()实现从文件IN.DAT中读取1000个十进制整数到数组XX中;请编制函数Compute(),分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver以及方差totfc的值,最后调用函数WriteData()把结果输出到O

admin2011-06-14  8

问题 函数ReadData()实现从文件IN.DAT中读取1000个十进制整数到数组XX中;请编制函数Compute(),分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver以及方差totfc的值,最后调用函数WriteData()把结果输出到OUT.DAT文件中。
计算方差的公式如下;

原始数据文件存放的格式是;每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)
注意;部分源程序已给出如下;
请勿改动主函数main()和输出数据函数WriteData()的内容。
试题程序;
#include
#include
#include
#define MAX 1000   
int xx[MAX],odd=0,even;0;  
double aver=0.0,totfc=0.0;
void WriteData(void);
int ReadData(void)
{
  int i;
  FILE*fp;
  if((fp=fopen("IN.DAT","r"))==NULL)return 1;
  for(i=0;i<100;i++)
  {
    for(j=0;j<10;j++)
    fscanf(fp,"%D",&inBuf[i*10+j]);
    fscanf(fp,"\n");
    it(feof(fp))hreak;
  fclose(fp);
  return 0;
}
void Compute(void)
{
}
void main()
{
  int i;
  for(i=0;i=0;
  if(ReadData())
  {
    printf("数据文件IN.DAT不能打开!\007\n");
    return;
    }
    Compute();
    printf("ODD=%d\nOVEN=%d\nAVER=%If\nTOTFC=%If\n",odd,even,aver,totfc);
    WriteData();
}
void WriteData(void)
{
  FILE*fp;
  fp=fopen("OUT.DAT","w");
  fprintf(fp,"%d\n%d\n%If\n%If\n",odd,even,aver,totfc);fclose(fp);
}

选项

答案  void Compute(Void) { int i; for(i=0;i
解析 本题考查文件的操作、奇偶判断和数学公式的计算。函数ReadData的作用是从文件中读取数据存入数组xx中,因为数据存放入文件的格式是每个数据被逗号隔开,所以fscanf(fp,"%d,",&xx)语句中字符串"%d,"中要加入逗号。函数Compute的作用是计算方差思路是首先顺序读取数组XX中的结点,若是奇数(xx%2,xx为奇数余数为1条件表达式为真),odd加1,若不是奇数(即为偶数),even加1。然后计算平均数,利用循环结构依次读取数组XX,计算方差totfc。
转载请注明原文地址:https://www.kaotiyun.com/show/HraZ777K
0

最新回复(0)