2012年计算机三级数据库技术上机指导:考试内容(3)
例2: 文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数readDat()是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,将排序后的前10个数存入数组b中,如果数组b中出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列。最后调用函数writeDat()把结果bb输出到文件out.dat中。
例:处理前 6012 5099 9012 7025 8088
处理后 9012 6012 7025 8088 5099
注意:部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
部分源程序如下:
#include
#include
#include
int aa[200], bb[10] ;
void jsSort()
{
}
void main()
{
readDat() ;
jsSort() ;
writeDat() ;
}
readDat()
{
FILE *in ;
int i ;
in=fopen(“in.dat“, r) ;
for(i=0 ; i<200 ; i+[KG-*3]+) fscanf(in, “%d,“, &aa[i]) ;
fclose(in) ;
}
writeDat()
{
FILE *out ;
int i ;
clrscr() ;
out=fopen(“out.dat“, w) ;
for(i=0 ; i<10 ; i+[KG-*3]+) {
printf(“i=%d,%d\n“, i + 1,bb[i]) ;
fprintf(out, “%d\n“, bb[i]) ;
}
fclose(out) ;
}