100题第6题
6:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。例:处理前 9012 5099 6012 7025 8088
处理后 5099 8088 7025 6012 9012
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
--------------------
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]>aa[j])
{
data=aa[I];
aa[I]=aa[j];
aa[j]=data;}
}
for(I=0;I<10;I++)
bb[I]=aa[I];
}