在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。
例:处理前 60125099901270258088
处理后 90126012702580885099
#include
#include
#include
intaa[200], bb[10];
void jsSort()
{
int i,j,k;
int cc[200];
for(i=0;icc[j+1]) {k=aa[j];aa[j]=aa[j+1];aa[j+1]=k;}
if(cc[j]==cc[j+1])
if(aa[j]<aa[j+1]) {k=aa[j];aa[j]=aa[j+1];aa[j+1]=k;}
}
for(i=0;i<10;i++)
bb=aa;
}
void ReadDat()
{
FILE*in;
inti;
in = fopen("in.dat", "r");
for (i=0; i<200; i++)
fscanf(in, "%d,", &aa);
fclose(in);
}
void WriteDat()
{
FILE*out;
inti;
out = fopen("out.dat", "w");
for (i=0; i<10; i++)
{
printf(" %d", bb);
fprintf(out, "%d\n", bb);
}
fclose(out);
}
void main()
{
ReadDat();
jsSort();
WriteDat();
}
jsSort是自己编的函数,不知道另设cc数组是不是有问题?
|