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

admin2013-12-17  49

问题 函数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 Readl)ata(void)
    {
    int i;
    FILE*fp;
    if((fp=fopen(“IN.DAT”,“r”))==NULL)re
    turn 1;
    for(i=0;i<100;i++)
    {
    for(j=0;j<10;j++)
    fscanf(fp,“%D”,&inBuf[i*10+j]);
    fseanf(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=%lf\
    nTOTFC=%lf\n”,odd,even,aver,totfc);
    WriteData();
    }
    void WriteData(void)
    {
    FILE*fp;
    fp=fopen(“OUT.DAT”,“W”);
    fprintf(fp,“%d\n%d\n%lf\n%lf\n”,odd,even,a
    ver,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://kaotiyun.com/show/SAZZ777K
0

最新回复(0)