问答题

下列程序的功能是:将一正整数序列{K1,K2,…,K9}重新排成一个新的序列。新序列中,比K1小的数都在K1的左面(后续的再向左存放),比K1大的数都在K1的右面(后续的再向右存放),从K1向右扫描。要求编写函数jsValue()实现此功能,最后调用函数writeDat()把新序列输出到文件out90.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} 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDat()的内容。 试题程序: #include<stdio.h> jsValue(int a[10][9]) { } 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 ("out90.dat", "w"); for (i=0;i<10; i++) { for(j=0;j<9;j++) { fprintf (fp, "%d", a [i] [j] ); if (j<=7) fprintf (fp, ", "); } fprintf (fp, "\n"); } fclose (fp); }

【参考答案】

void jsValue(int a[10][9]) { int value,i,j,k,num; for(i=......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)