正整数排序求平均值(包括将数拆散、求最大最小值

正整数排序求平均值(包括将数拆散、求最大最小值

ID:14274812

大小:45.00 KB

页数:12页

时间:2018-07-27

正整数排序求平均值(包括将数拆散、求最大最小值_第1页
正整数排序求平均值(包括将数拆散、求最大最小值_第2页
正整数排序求平均值(包括将数拆散、求最大最小值_第3页
正整数排序求平均值(包括将数拆散、求最大最小值_第4页
正整数排序求平均值(包括将数拆散、求最大最小值_第5页
资源描述:

《正整数排序求平均值(包括将数拆散、求最大最小值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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满足条件的平均值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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。