例2: 文件in.dat中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)readDat()是讀取這200個(gè)數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個(gè)數(shù)的后三位的大小進(jìn)行升序排列,將排序后的前10個(gè)數(shù)存入數(shù)組b中,如果數(shù)組b中出現(xiàn)后三位相等的數(shù)值,則對這些數(shù)值按原始4位數(shù)據(jù)進(jìn)行降序排列。最后調(diào)用函數(shù)writeDat()把結(jié)果bb輸出到文件out.dat中。
例:處理前 6012 5099 9012 7025 8088
處理后 9012 6012 7025 8088 5099
注意:部分源程序存在文件PROG1.C文件中。
請勿改動(dòng)數(shù)據(jù)文件in.dat中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。
部分源程序如下:
#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) ;
}
相關(guān)推薦:2010年9月計(jì)算機(jī)等級考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |