已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include
#include
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0; /*文件IN.DAT中共有多少个正整数*/
int totCnt=0; /*符合条件的正整数的个数*/
double totPjz=0.0; /*平均值*/
int ReadDat(void);
void writeDat(void);
void CalValue(void)
{int i,data;
for(i=0;i if(xx[i]>0) { totNum++; data=xx[i]>>1; if(data%2==0){totCnt++;totPjz+=xx[i];} } if(totCnt==0) totPjz=0; else totPjz/=totCnt; } void main() { int i; clrscr(); for(i=0;i if(ReadDat()){ printf("数据文件IN.DAT不能打开!\007\n"); return; } CalValue(); printf("文件IN.DAT中共有正整数=%d个\n",totNum); printf("符合条件的正整数的个数=%d个\n",totCnt); printf("平均值=%.2f\n",totPjz); writeDat(); } int ReadDat(void) { FILE *fp; int i=0; if((fp=fopen("IN.DAT","r"))==NULL) return 1; while(!feof(fp)){ fscanf(fp,"%d,",&xx[i++]); } fclose(fp); return 0; } void writeDat(void) { FILE *fp; fp=fopen("OUT.DAT","w"); fprintf(fp,"%d\n%d\n%6.2f\n",totNum,totCnt,totPjz); fclose(fp); }
【2006年9月全国等级考试三级c语言上机题库(二十六)】相关文章: 小学一年级写宠物的英语作文三篇02-06 2014年5月江西计算机软考答案(数据库系统工程师)02-06 2024大兴区事业单位招聘考试现场资格复审时间:8月8日至8月9日02-06 新疆维吾尔自治区司法考试考务咨询联系方式02-06 2016年6月辽宁英语六级查分网站:99宿舍cet.99sushe.com02-06 小学一年级英语下册试卷检测02-06 高三经典英语作文带翻译:物理老师02-06 国旗(the national flag)英语作文|国旗(the national flag)英语范文|国旗(the national flag)英语小作文02-06
