 | **题目5 在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。 例:处理前 6012 5099 9012 7025 8088 处理后 9012 6012 7025 8088 5099 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include int aa[200],bb[10]; void jsSort() { int i,j,data; for(i=0;i<199;i++) for(j=i+1;j<200;j++) if(aa%1000>aa[j]%1000||aa%1000==aa[j]%1000;;aa {data=aa;aa=aa[j];aa[j]=data;} for(i=0;i<10;i++) bb=aa; } 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); fclose(in); } writeDat() { FILE *out; int i; clrscr(); out=fopen(“out.dat”,“w”); for(i=0; i<10; i++){ printf(“ %d”,bb); fprintf(out,“%dn”,bb); } fclose(out); }
| |