2006年9月全国等级考试三级c语言上机题库(九十)
文章作者 100test 发表时间 2007:03:10 19:20:43
来源 100Test.Com百考试题网
题目90(无忧id 18 整数排序题)
下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。
说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。
例:序列{6,8,9,1,2,5,4,7,3}
经重排后成为{3,4,5,2,1,6,8,9,7}
部分源程序存在文件prog1.c中。
请勿改动主函数main()和写函数writeDat()的内容。
#include
jsValue(int a[10][9])
{ int i,j,k,val,num.
for(i=0.i<10.i )
{ val=a[i][0].
for(j=0.j<9.j )
if(a[i][j]
{ num=a[i][j].
for(k=j.k>0.k--)
a[i][k]=a[i][k-1].
a[i][0]=num.
}
}
}
main()
{
int a[10][9]={{6,8,9,1,2,5,4,7,3},
{3,5,8,9,1,2,6,4,7},
{8,2,1,9,3,5,4,6,7},
{3,5,1,2,9,8,6,7,4},
{4,7,8,9,1,2,5,3,6},
{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,6,2,4,7},
{2,6,1,9,8,3,5,7,4},
{5,3,7,9,1,8,2,6,4},
{7,1,3,2,5,8,9,4,6},
}.
int i,j.
jsValue(a).
for(i=0.i<10.i ){
for(j=0.j<9.j ) {
printf("%d",a[i][j]).
if(j<=7)printf(",").
}
printf("\n").
}
writeDat(a).
}
writeDat(int a[10][9])
{
FILE *fp.
int i,j.
fp=fopen("out.dat","w").
for(i=0.i<10.i ){
for(j=0.j<9.j ){
printf("%d",a[i][j]).
fprintf(fp,"%d",a[i][j]).
if(j<=7) fprintf(fp,",").
}
printf("\n").
fprintf(fp,"\n").
}
fclose(fp).
}