2002年全国计算机等级考试四级考试上机题10
来源:优易学  2010-1-14 14:03:50   【优易学:中国教育考试门户网】   资料下载   IT书店
10、已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中, 请考生编制一函数jsVal(),其功能是: 将第1个数减第200个数, 若差值小于零, 则取差值的绝对值作为下列统计用的符合条件数, 若差值大于等于零, 则差值不作为符合条件数; 将第2个数减第199个数, 若差值小于零, 则同样取差值的绝对值, 若差值大于等于零, 则差值同样不作为符合条件数;直至第100个数减第101个数为止,接着计算出这些符合条件数中的最小值min、最大值max以及这些符合条件数的平均值aver。最后main()函数调用写函数writeDat()把结果输出到文件OUT.DAT中。
 注意: 部分源程序存在文件PROG1.C文件中。
 程序中已定义: a[200]、min、max、aver
 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。*/#include #define MAX 200int a[MAX], min, max;double aver ;void jsVal(){/**/
 int i,t,k=0;
 max=0; min=10000;
 aver=0.0;
 for(i=0; i < MAX/2; i++)
 { t=a[i]-a[MAX-i-1];
 if(t < 0)
 { t=-t; k++; aver+=t;
 if(max < t) max=t; else if(min>t) min=t;
 }
 }
 aver/=k;/**/}void readDat(){
 int i ;
 FILE *fp ;
 fp = fopen("in.dat", "r") ;
 for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
 fclose(fp) ;}void main(){
 readDat() ;
 jsVal() ;
 printf("结果min=%d,max=%d,aver=%6.2lf\n", min, max, aver) ;
 writeDat() ;}writeDat(){
 FILE *fp ;
 fp = fopen("out.dat", "w") ;
 fprintf(fp, "%d\n%d\n%6.2lf\n", min, max, aver) ;
 fclose(fp) ;}

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训