欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

请编制程序,要求:将文件IN94.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的

时间:2018-03-30

请编制程序,要求:将文件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);


}



答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:void main() { int cnt1cnt2xx[N]; float pj; FILE *fw; int ik=0; long j=0; cnt1=0; cnt2=0; pi=0.0; clrscr(); fw=fopen("out94.dat""w"); read_dat(xx); for(i=0;iN;i++) { if(xx[i]%2) cnt1++; /*求出数组xx中奇数的个数cnt1*/ else cnt2++; /*求出数组xx中奇数的个数cnt2*/ if(i%2==1) { j+=xx[i]; /*求数组xx下标为奇数的元素值的总和*/ k++; } } pj=(float)(j*100/k)/100; /*求数组xx下标为奇数的元素值的算术平均值pj*/ printf("\n\ncnt1=%dcnt2=%dpj=%6.2f\n"cnt1cnt2pj); fprintf(fw"%d\n%d\n%6.2f\n"cnt1cnt2pj); fclose(fw); }
void main() { int cnt1,cnt2,xx[N]; float pj; FILE *fw; int i,k=0; long j=0; cnt1=0; cnt2=0; pi=0.0; clrscr(); fw=fopen("out94.dat","w"); read_dat(xx); for(i=0;iN;i++) { if(xx[i]%2) cnt1++; /*求出数组xx中奇数的个数cnt1*/ else cnt2++; /*求出数组xx中奇数的个数cnt2*/ if(i%2==1) { j+=xx[i]; /*求数组xx下标为奇数的元素值的总和*/ k++; } } pj=(float)(j*100/k)/100; /*求数组xx下标为奇数的元素值的算术平均值pj*/ 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); } 解析:本题考查的知识点如下:
(1)运算符“%”的使用。
(2)强制类型转换和小数位数的保留。
一个数除以2取余所得的数为1,则它是奇数,否则是偶数,取余使用运算符“%”。在本题中,要求算术平均值保留两位小数。使用的方法是:将和乘以100除以个数强制类型转换后再除以100。为了保证和有效,我们定义了一个长整型变量来记录和。因为个数也为整型,运算符“/”在这里的含义是整除,而我们要保留小数,所以要使用强制类型转换将和乘以100的结果转换为浮点类型,这样就可以实现保留两位小数。使用循环对所有数据进行访问。
相关推荐

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。