题目内容
已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存人数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUTII.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WfiteDat()的内容。 [试题程序] #include<stdio.h> #include<stdlib.h> #define MAXNUM 200 int xx[MAXNUM]; int totNum=0;/*文件IN11.DAT中共有多少个正整数*/ int totCnt=0;/*符合条件的正整数的个数*/ double totPjz=0.0;/*平均值*/ int ReadDat(void); void WriteDat(void); void CalValue(void) voidmain() int i; system("CLS"); for(i=0;i<MAXNUM;i++) xx[i]=0; if(ReadDat()) printf("数据文件IN11.DAT不能打开!\007\n"); return; CalValue(); printf("文件IN11.DAT中共有正整数=%d个\n",totNum); printf("符合条件的正整数的个数=%d个\n",totCnt); printf("平均值=% .21f\n",totpjz); WriteDat(); int ReadDat(void) FILE*fp; int i=0; if((fp=fopen("IN11.DAT","r"))==NULL) return 1; while(! feof(fp)) fscanf(fp,"% d,",&xx[i++]); fclose(fp); return 0; void WriteDat(void) FILE*fp: fp=fopen("OUT11.DAT","w"); fprintf(fP,"% d\n% d\n% .21f\n",totNum,totCnt,totPjz); fclose(fP);
查看答案
搜索结果不匹配?点我反馈
更多问题