1、正整数排序求平均值(包括将数拆散、求最大最小值.txt49 礁石因为信念坚定,才激起了美丽的浪花;青春因为追求崇高,才格外地绚丽多彩。50 因为年轻,所以自信;因为自信,所以年轻。8 题 在文件中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数ReadDat()读取这 200 个数存放到数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前 10 个数依次存入数组b 中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。例:
2、处理前 6012 5099 9012 7025 8088处理后 9012 6012 7025 8088 5099部分源程序已给出。请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。 #include#include#includeint aa200,bb10;void jsSort()void main()readDat();jsSort();writeDat();readDat()FILE *in;int i;in=fopen(“in.dat“,“r“);for(i=0; iaaj%1000) data=aai; aai=aaj; aaj
3、=data; else if(aai%1000=aaj%1000)if(aai1+2,则该数不满足条件计算平均值 pjz2.部分源程序已给出。程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2请勿改动主函数 main()、读函数 ReadDat()和写函数 writeDat()的内容。 #include int a300,cnt=0;double pjz1=0.0,pjz2=0.0;jsValue()main()int i;readDat();jsValue();writeDat();printf(“cnt=%dn 满足条件的平均值 pzj1=%7.21fn 不满足条件的平均值
4、 pjz2=%7.21fn“ ,cnt,pjz1,pjz2);readDat()FILE *fp;int i;fp=fopen(“ in.dat“ ,“ r“ );for(i=0,iint a300,b300,cnt=0;int isP(int m)int i;for(i=2;i=0FILE *fp;fp=fopen(“in.dat“,“r“);for(i=0;ixxi) min0=xxi;else max=min=xxi;for(i=0;ixxifor(i=0;i#include#define N 200 void read_dat(int xxN)int i,j;FILE *fp;fp=f
5、open(“in.dat“,“r“);for(i=0;i#include#define MAXNUM 200 int xxMAXNUM;int totnum=0;int totcnt=0;double totpjz=0.0;int readdat(void);void writedat(void);void calvalue(void)void main()int i;clrscr();for(i=0;i0) totnum+;if(xxi/1000+xxi/100%10+xxi/10%10+xxi%10)/2=0)totcnt+;totpjz+=xxi;totpjz/=totcnt;48、请编
6、制程序,从文件 in.dat 中读取 200 个整数至数组 xx 中,求出奇数的个数 cnt1 和偶数的个数 cnt2 以及数级 xx 值为奇数的元素值的算术平均值 pj(保留 2 位小数) 。结果 cnt1,cnt2,pj 输出到 out.dat 中。部分程序、读数据函数 read_dat(int xx200)及输出格式已给出。#include#include#define N 200 void read_dat(int xxN)int i,j;FILE *fp;fp=fopen(“in.dat“,“r“);for(i=0;i20;i+)for(j=0;j10;j+)fscanf(fp,“%
7、d,“,printf(“%d “,xxi*10+j);printf(“n“);fclose(fp);void main()int cnt1,cnt2,xxN;float pj;FILE *fw;clrscr();fw=fopen(“out.dat“,“w“);read_dat(xx);printf(“nncnt1=%d,cnt2=%d,pj=%6.2fn“,cnt1,cnt2,pj);fprintf(fw,“%dn%dn%6.2fn“,cnt1,cnt2,pj);fclose(fw);/* 注:void main()int cnt1,cnt2,xxN;float pj;FILE *fw;int i;clrscr();fw=fopen(“out.dat“,“w“);read_dat(xx);pj=0;cnt1=cnt2=0;for(i=0;iN;i+)if(xxi%2) cnt1+;pj+=xxi;else cnt2+;pj=(float)(int)pj*100/cnt1)/100;printf(“nncnt1=%d,cnt2=%d,pj=%6.2fn“,cnt1,cnt2,pj);fprintf(fw,“%dn%dn%6.2fn“,cnt1,cnt2,pj);fclose(fw);