在数据文件in.dat中已存有200个正整数,且每个数均在1000至9999之间。函数readDat()已读取这200个数并存放到数组aa中。请编写函数jsSor1(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,如果出现后三位相等的数值,则对

admin2013-12-10  25

问题 在数据文件in.dat中已存有200个正整数,且每个数均在1000至9999之间。函数readDat()已读取这200个数并存放到数组aa中。请编写函数jsSor1(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,如果出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列,将排序后的前10个数存人数组bb中。最后调用函数writeDat()把结果bb输出到文件out.dat中。
    例如:处理前6012 5099 9012 7025 8088
    处理后9012 6012 7025 8088 5099
【试题程序】
    #include
    #include
    void readDat();
    void writeDat();
    int aa[200],bb[10];
    void jsSort()
    {
    }
    void main()
    {
  readDat();
  jsSort();
  writeDat();
}
void readDat()
{
  FILE*in;
  int i;
  in=fopen(“in.dat”,“r”);
  for(i=0;i<200Ii++)
    fscanf(in,“%d,”.8Laa);
  fclose(in);
}
void writeDat()
{
  FILE*out;
  int i;
  out=fopen(“out.dat”,“w”);
  for(i=0li<10li++){
    printf(”i=%d,%d\n”,i+1’bb);
    fprintf(out。”%d\n”,bb);
  }
  fclose(out);
}

选项

答案void jsSort() {int i.j; /*定义变量*/ int temp; for(i=0;i<200一1;i++) /*选择法排序*/ for(j=i+1 1j<200;j++) if(aa[i]%1000>aa[j]%1000||aa[i]% 1000==aa[i]%1000&&aa[[i]
解析
转载请注明原文地址:https://kaotiyun.com/show/dolZ777K
0

最新回复(0)