已知数据文件IN15.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pjz2,最后调用写函数writeDat()把结果输出到OUT15.DAT文件。
例如:9123,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。
#include <stdio.h> int a[300],cnt=0; double pjz1=0.0,pjz2=0.0; jsValue() { int i,n=0,sum1=0,sum2=0; for(i=0;i<300;i++) { if((a[i]/1000 - (a[i]%1000)/100 - (a[i]%100)/10 -a[i]%10)>0) {sum1+=a[i];cnt++;} else {sum2+=a[i];n++;} } pjz1=(double)sum1/cnt; pjz2=(double)sum2/n; } main() { int i; readDat(); jsValue(); writeDat(); printf("cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pzj2=%7.21f\n", cnt,pjz1,pjz2); } readDat() { FILE *fp; int i; fp=fopen("IN15.DAT","r"); for (i=0;i<300;i++) fscanf(fp, "%d,",&a[i]); fclose(fp); } writeDat() { FILE *fp; int i; fp=fopen("OUT15.DAT","w"); fprintf(fp,"%d\n%7.21f\n%7.21f\n",cnt,pjz1,pjz2); fclose(fp); }
博主个人网站 http://henghui.web-126.com/