请编制程序,要求:将文件IN94.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),结果cnt1,cnt2,pj输出到OUT94.DAT中。部分程序、读函数read_dat(int xx[200))及输出格式已给出。试题程序:include<conio:h>include<stdio.h>define N 200void read_dar (int xx [N] ){int i,j;FILE *fp;

题目

请编制程序,要求:将文件IN94.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),结果cnt1,cnt2,pj输出到OUT94.DAT中。

部分程序、读函数read_dat(int xx[200))及输出格式已给出。

试题程序:

include<conio:h>

include<stdio.h>

define N 200

void read_dar (int xx [N] )

{

int i,j;

FILE *fp;

fp=fopen("IN94.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 cnt1,cnt2,xx[N];

float pj;

FILE *fw;

clrscr();

fw=fopen("out94.dat","w");

read_dat(xx);

printf("\n\ncnt1=%d, cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj);

fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj);

fclose(fw);

}


相似考题
更多“请编制程序,要求:将文件IN94.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的 ”相关问题
  • 第1题:

    函数ReadDat实现从文件in.dat中读取1 000个十进制整数到数组XX中,请编制函数Compute分别计算出XX中数值为偶数的个数even,所有数值为奇数的平均值ave1,偶数的平均值ave2以及所有偶数的方差totfc的值,最后调用函数 WriteDat把结果输出到0ut.dat文件中。 计算方差的公式如下:设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)注意:部分源程序存放在test.c文件中。 请勿改动主函数main和输出函数WriteDat的内容。


    正确答案:
    【审题关键句】读取1000个数,奇数个数及平均值,偶数个数、平均值及方差。
    【解题思路】
    ①定义循环变量i、表示奇数个数的变量0dd并设置其值为0。
    ②采用for循环语句,对数组XX中每个数组元素xx[i]对2求余数,如果余数为1,则说明数组元素xx[i]的值为奇数,则变量odd的值加1,并把数组元素xx[i]的值累加到变量ave1,否则,说明数组元数xx[i]的值为偶数,则变量even的值加1,并把数组元素xx[i]的值累加到变量ave2。
    ③退出for循环语句后,用变量avel除以奇数的个数odd,得到所有奇数的平均值赋给ave1,用变量ave2除以偶数的个数even,得到所有偶数的平均值赋给ave2。
    ④利用for循环语句,对数组XX中每个数组元素xx[i]对2求余数,如果余数等于0,则说明数组元素xx[i]的值为偶数,这时把表达式xx[i].ave2的平方值累加到变量totfc。退出循环后,用变量totfc的值除以偶数的个数even,得到所有偶数的方差赋给变量totfc。
    【参考答案】

  • 第2题:

    在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat读取这若干个正整数并存入数组XX中。请编制函数CalValue,其功能要求:1.求出该文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后main函数调用函数WriteDat把所求的结果输出到0ut.dat文件中。 注意:部分源程序存放在test.c文件中。 请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。


    正确答案:
    【审题关键句】读取正数,统计个数,各位数字之和为偶数的数的个数及平均值。
    【解题思路】 定义整型循环变量i、j,表示各位数字之和的长整型变量he以及存储一个四位数的字符数组num[5]。
    ②循环变量i从0开始,依次递增到4,对字符数组num[5]的每个元素赋初值0。
    ③循环变量i从0开始,依次递增到MAXNUM.1,对每个数组元素xx[i]进行判断,如果xx[i]的值非零,则变量totNum加1,退出循环时,totNm的值就是文件in.dat中存有的四位正整数的个数。
    ④循环变量i从0开始,依次递增到totNum-1,对于每个数组元素xx[i]调用库函数sprintf以4个字符宽度形式输出到字符数组num中,用字符数组num中的每个元素减去0的ASCII码48,就分别得到XX[i]这个四位数每位上的数字,并把这四个数字相加赋给变量j。再对变量j对2求余数进行判断其值是否等于0,如果等于0,则说明j是偶数,变量totCnt加1,并把xx[i]的值累加到变量he。
    ⑤退出循环后,把变量he的类型转换成双精度型再除以totCnt得到符合条件的数的算术平均值totPjz。
    【参考答案】

  • 第3题:

    数组xx[M]保存着一组4位无符号整数,其元素的个数通过变量num传人函数proc()。请补充函数proc(),该函数的功能是:从数组XX中找出个位和百位上的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数proc()返回。

    例如,当xx[8]={1111 2413 2321 2222 4245 3333 14145335)时,yy[6]={1111 2222 3333 1414}。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【1】xx[i]%101【2】yy[n++]=xx[i]【3】n
    【解析】要找出个位和百位上的数字相等的所有无符号整数,首先要得到数组xx中每一个元素的个位和百位数字,然后进行比较。因此,【1】处填xx[i]%10。当个位和百位相等时,把数组xx中的该元素放到数组yy中。因此,【2】处填yy[n++]=xx[i]。由函数proc()可知,数组yy的个数存放在变量n中,最后返回到主函数当中。因此,【3】处填n。

  • 第4题:

    将文件in.dat中的200个整数读至数组XX中。请编制jsValue函数,要求:求出数组XX中的最大数max及最大数的个数cnt和数组XX中的元素值能被3整除或能被7整除的所有数的算术平均值pj。 结果max,cnt,pj输出到out.dat中。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数read dat和输出函数writeDat的内容。第4类数位分解后按数筛选统计并排序


    正确答案:
    【审题关键句】最大数及其个数,同时被3或7整除的整数的算术平均值。
    【解题思路】
    ①定义循环整型变量i和用于保存数组)xx中的能被3整除或能被7整除的元素的个数变量cnt1,并把其值设置为0。把全局变量max、cnt的初值设置为0;把变量pj的初值设置为0.0。
    ②采用for循环语句,循环变量i从0开始,依次递增到N-1,对数组xx中的每一个数组元素xx[i]用if条件语句判断其值是否能被3整除或能被7整除,如果xx[i]满足上述条件,则把其值累加到变量pj,同时变量cnt1的值加1。再判断数组元素xx[i]与max的大小,如果xx[i]大于max,则xx[i]的值赋给max,同时把变量cnt的值赋为1,如果xx[i]等于max,则变量cnt的值加1。
    ③退出循环后,用变量pj的值除以cnt1的值就得到满足条件的数的算术平均值。
    在for循环语句对200个整数逐个进行扫描,判断其能被3整除或能被7整除的数,并把这些数累加到变量pj,并统计这些数的个数,用这些数的和除以它们的个数,就得到这些数的平均值。对于求出数组XX中的最大数max及最大数的个数 cnt的问题,把数组xx中的第一个数赋给变量max,对于能被3整除或能被7整除的数与max的值比较大小,如果此数比 max的值大,则把这个数赋值给max,如果此数等于max的值,则最大数的个数cnt加1。
    【参考答案】

    第4类数位分解后按数筛选统计并排序

  • 第5题:

    将文件in.dat中的200个整数读至数组XX中。请编制js Vralue函数,要求:求出数组XX中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为0的元素)的元素值的算术平均值pj。 结果cnt1,cnt2,pJ输出到out.dat中。注意:部分源程序存在test.c文件中。请勿改动数据文件in.dat中的任何数据、主函数main、读函数readdat和输出函数writeDatj的内容。


    正确答案:
    【审题关键句】读入数值,奇数个数,偶数个数,数组下标为偶数的平均值。
    【解题思路】
    ①首先定义循环变量i,并对全局变量cnt1、cnt2和pj赋初值0。
    ②在for循环语句中,将数组xx中的每个数组元素xx[i]对2求余数,如果余数非零,则说明xx[i]是奇数,奇数的个数变量cntl加1,否则,偶数的计数变量cnt2加1;接着将数组XX下标i对2求余,如果余数等于0,则把xx[i]的值累加到变量pj。
    ③退出循环时,变量pJ的值除以100.0就得到数组xx下标i为偶数的元素值的算术平均值pj(因为数组中共有200令数组,下标为奇偶数的元素各占一半,因此直接将累加变量pJ的值直接除100即可得到这些数的平均值)。
    【参考答案】