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

admin2021-09-09  63

问题 文件IN.DAT中存有200个整数,函数read_dat(int inBut[MAX])负责将这200个数读到数组inBuI[]中。请编制程序,要求:求出数组inBuf[]中奇数的个数count1和偶数的个数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*fpl
    fp=fopen(“IN.DAT”,“r”);
    for(i=0;i<20;i++)
    {
    for(j=0;j<10;j++)
    {
    fscanf(fp,“%d,”,&inBuf[i*10%3);
    wind(“%d”,inBuf[i*10+j]);
    }
    printf(“\n”);
    }
    fclose(fp);
    }
    void main()
    {
    int count1,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(i=0;i
解析 本题主要考查依据数蛆下标对数据进行筛选及平均值的求法。
   程序步骤:①如果inBuf是奇数,则count1加1;否则,count2加1。如果下标符合条件,则k加1,并将inBuf加到average上。②所有数都判断完后average=average/k得到平均值。
转载请注明原文地址:https://jikaoti.com/ti/24Y7FFFM
0

最新回复(0)