为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

财富之一剑封喉

2013-04-27 5页 doc 199KB 36阅读

用户头像

is_190379

暂无简介

举报
财富之一剑封喉正整数排序求平均值(包括将数拆散、求最大最小值 正整数排序求平均值(包括将数拆散、求最大最小值.txt49礁石因为信念坚定,才激起了美丽的浪花;青春因为追求崇高,才格外地绚丽多彩。50因为年轻,所以自信;因为自信,所以年轻。8题 在文件中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列。...
财富之一剑封喉
正整数排序求平均值(包括将数拆散、求最大最小值 正整数排序求平均值(包括将数拆散、求最大最小值.txt49礁石因为信念坚定,才激起了美丽的浪花;青春因为追求崇高,才格外地绚丽多彩。50因为年轻,所以自信;因为自信,所以年轻。8 在文件中有200个正整数,且每个数均在1000至9999之间。数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。 例:处理前 6012 5099 9012 7025 8088 处理后 9012 6012 7025 8088 5099 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include int aa[200],bb[10]; void jsSort() { } void main() { readDat(); jsSort(); writeDat(); } readDat() { FILE *in; int i; in=fopen("in.dat","r"); for(i=0; i<200; i++) fscanf(in,"%d,",&aa[i]); fclose(in); } writeDat() { FILE *out; int i; clrscr(); out=fopen("out.dat","w"); for(i=0; i<10; i++){ printf("i=%d,%d\n",i+1,bb[i]); fprintf(out,"%d\n",bb[i]); } fclose(out); } -------------------------------------------------------------------------------- 注:每个元素对1000求余得到后三位的数,然后用冒泡法进行排序。 void jsSort() { int i,j,data; for(i=0;i<199;i++) for(j=i+1;j<200;j++) { if(aa[i]%1000>aa[j]%1000) { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } else if(aa[i]%1000==aa[j]%1000) if(aa[i]1+2,则该数不满足条件计算平均值pjz2. 部分源程序已给出。 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],cnt=0; double pjz1=0.0,pjz2=0.0; jsValue() { } main() { int i; readDat(); jsValue(); writeDat(); printf("cnt=%d\n满足条件的平均值pzj1=%7.21f\n不满足条件的平均值pjz2=%7.21f\n" ,cnt,pjz1,pjz2); } readDat() { FILE *fp; int i; fp=fopen(" in.dat" ," r" ); for(i=0,i<300;i++)fscanf(fp,"%d" ,&a[i]); fclose(fp); } writeDat() { FILE *fp; int i; fp=fopen(" out.dat" ," w" ); fprintf(fp," %d\n%7.21f\n%7.21f\n" ,cnt,pjz1,pjz2); fclose(fp); } -------------------------------------------------------------------------------- 注:该题的关键在于会不会取出一个数的个、十、百、千位上的数。a[i]%10对10求余结 果为个位数,a[i]%100/10先对100求余得出后两位数然后再除10,由于为整数因此得出 上一个后两位数的第一位。依此类推。*/ jsvalue() { int i,g,s,b,q,k=0; for(i=0;i<300;i++) {g=a[i]%10; s=a[i]%100/10; b=a[i]/100%10; q=a[i]/1000; if((q+g)==(s+b)) {cnt++;pjz1+=a[i];} else {k++;pjz2+=a[i];} } pjz1/=cnt; pjz2/=k; } 37题 已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入 数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再 把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进 行排序,最后调用写函数writeDat()把结果输出到OUT.DAT文件。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],b[300],cnt=0; int isP(int m){ int i; for(i=2;i=0&&temp #include #define N 200 void read_dat(int xx[N]) { int i,j; FILE *fp; fp=fopen("in.dat","r"); for(i=0;i<20;i++) {for(j=0;j<10;j++) {fscanf(fp,"%d,",&xx[i*10+j]); printf("%d ",xx[i*10+j]); } printf("\n"); } fclose(fp); } void main() { int cnt1,cnt2,xx[N],max,min; float pj; FILE *fw; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); printf("\n\nmax=%d,cnt1=%d,min=%d,cnt2=%d,pj=%6.2f\n", max,cnt1,min,cnt2,pj); fprintf(fw,"%d\n%d\n%d\n%d\n%6.2f\n",max,cnt1,min,cnt2,pj); fclose(fw); } /* 注:该题是要在主函数中加程序行,注意本题要求去除最大和最小数后再求出去掉后 的最大数max和最小数min及相应的个数。因此程序中出现的max0和min0,用来标识所有 数中的最大数和最小数,后而求出次大数和次小数。在求max0和min0时一定要给max和m in赋一个与max0和min0不同的数(该题用esle max=min=xx[i]),否则会出错。对于一个 浮点数要对其保留2位小数时,要将其乘100后转换成整数,最后再将其转换成浮点数然 后除100即可。*/ void main() { int cnt1,cnt2,xx[N],max,min; float pj; FILE *fw; int i,max0,min0; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); max0=min0=xx[0]; pj=0; cnt1=cnt2=0; for(i=1;ixx[i]) min0=xx[i]; else max=min=xx[i]; } for(i=0;ixx[i]&&xx[i]>min0) min=xx[i]; } for(i=0;i #include #define N 200 void read_dat(int xx[N]) { int i,j; FILE *fp; fp=fopen("in.dat","r"); for(i=0;i<20;i++) {for(j=0;j<10;j++) {fscanf(fp,"%d,",&xx[i*10+j]); printf("%d ",xx[i*10+j]); } printf("\n"); } fclose(fp); } void main() { int cnt1,cnt2,xx[N]; float pj; FILE *fw; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj); fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj); fclose(fw); } /* 注: void main() { int cnt1,cnt2,xx[N]; float pj; FILE *fw; int i,j=0; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); pj=0; cnt1=cnt2=0; for(i=0;i #include #define MAXNUM 200 int xx[MAXNUM]; 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((xx[i]/1000+xx[i]/100%10+xx[i]/10%10+xx[i]%10)/2==0) {totcnt++; totpjz+=xx[i]; } } totpjz/=totcnt; } 48、请编制程序,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶 数的个数cnt2以及数级xx值为奇数的元素值的算术平均值pj(保留2位小数)。 结果cnt1,cnt2,pj输出到out.dat中。 部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define N 200 void read_dat(int xx[N]) { int i,j; FILE *fp; fp=fopen("in.dat","r"); for(i=0;i<20;i++) {for(j=0;j<10;j++) {fscanf(fp,"%d,",&xx[i*10+j]); printf("%d ",xx[i*10+j]); } printf("\n"); } fclose(fp); } void main() { int cnt1,cnt2,xx[N]; float pj; FILE *fw; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); printf("\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n",cnt1,cnt2,pj); fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,pj); fclose(fw); } /* 注: void main() { int cnt1,cnt2,xx[N]; float pj; FILE *fw; int i; clrscr(); fw=fopen("out.dat","w"); read_dat(xx); pj=0; cnt1=cnt2=0; for(i=0;i
/
本文档为【财富之一剑封喉】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索