欢迎来到天天文库
浏览记录
ID:14274812
大小:45.00 KB
页数:12页
时间:2018-07-27
《正整数排序求平均值(包括将数拆散、求最大最小值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正整数排序求平均值(包括将数拆散、求最大最小值.txt49礁石因为信念坚定,才激起了美丽的浪花;青春因为追求崇高,才格外地绚丽多彩。50因为年轻,所以自信;因为自信,所以年轻。8题在文件中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到
2、文件out.dat中。例:处理前60125099901270258088处理后90126012702580885099部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include#include#includeintaa[200],bb[10];voidjsSort(){}voidmain(){readDat();jsSort();writeDat();}readDat(){FILE*in;i
3、nti;in=fopen("in.dat","r");for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);fclose(in);}writeDat(){FILE*out;inti;clrscr();out=fopen("out.dat","w");for(i=0;i<10;i++){printf("i=%d,%d",i+1,bb[i]);fprintf(out,"%d",bb[i]);}fclose(out);}------------------------------------
4、--------------------------------------------注:每个元素对1000求余得到后三位的数,然后用冒泡法进行排序。voidjsSort(){inti,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;}elseif(aa[i]%1000==aa[j]%1000)if(aa[i]5、aa[j];aa[j]=data;}}for(i=0;i<10;i++)bb[i]=aa[i];} 31题已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到OUT.DAT文件。例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=6、cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2.部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;jsValue(){}main(){inti;readDat();jsValue();writeDat();printf("cnt=%d满足条件的平均值pzj7、1=%7.21f不满足条件的平均值pjz2=%7.21f",cnt,pjz1,pjz2);}readDat(){FILE*fp;inti;fp=fopen("in.dat","r");for(i=0,i<300;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("out.dat","w");fprintf(fp,"%d%7.21f%7.21f",cnt,pjz1,pjz2);fclose(fp);}-------8、-------------------------------------------------------------------------注:该题的关键在于会不会取出一个数的个、十、百、千位上的数。a[i]%10对10求余结果为个位数,a[i]%100/10先对100求余得出后两位数然后再除10
5、aa[j];aa[j]=data;}}for(i=0;i<10;i++)bb[i]=aa[i];} 31题已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到OUT.DAT文件。例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=
6、cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2.部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;jsValue(){}main(){inti;readDat();jsValue();writeDat();printf("cnt=%d满足条件的平均值pzj
7、1=%7.21f不满足条件的平均值pjz2=%7.21f",cnt,pjz1,pjz2);}readDat(){FILE*fp;inti;fp=fopen("in.dat","r");for(i=0,i<300;i++)fscanf(fp,"%d",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("out.dat","w");fprintf(fp,"%d%7.21f%7.21f",cnt,pjz1,pjz2);fclose(fp);}-------
8、-------------------------------------------------------------------------注:该题的关键在于会不会取出一个数的个、十、百、千位上的数。a[i]%10对10求余结果为个位数,a[i]%100/10先对100求余得出后两位数然后再除10
此文档下载收益归作者所有