C语言正整数排序

在文件 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
#include<stdio.h>

#include<string.h>

#include<conio.h>

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[i]%1000<aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]>aa[j])

{data=aa[i];aa[i]=aa[j];aa[j]=data;}

for(i=0;i<10;i++)

bb[i]=aa[i];

}

void main()

{

readDat();

jsSort();

writeDat();

system(“pause”);

}

readDat()

{

FILE *in;

int i;

in=fopen(“in.dat”,“r”);

for(i=0; i<200; i++) fscanf(in,"%d,",&aa[i]);

fclose(in);

}

writeDat()

{ FILE *out;

int i;

clrscr();

out=fopen(“out.dat”,“w”);

for(i=0; i<10; i++){

printf(“i=%d,%d\n”,i+1,bb[i]);

fprintf(out,"%d\n",bb[i]);

}

fclose(out);

}

发布了239 篇原创文章 · 获赞 3 · 访问量 3141

猜你喜欢

转载自blog.csdn.net/it_xiangqiang/article/details/105176955