[说明]
将一正整数序列K1,K2,...,K9重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。
在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。
[函数]
#include<stdio.h>
#include<conio. h>
void jsValue(int a[10] [9])
int i, j ,k.n, temp;
int b[9];
for (i=0 ; i<10 ; i++)
temp=a [1] [0 ] ;
for(j=8;j>=0;j--)
if(temp<a[il [j]) (1) =a[i][j];
if(temp==a[i] [j]) (2) =a[i][j];;
if(temp==a[i] [j]) (3) =temp;
for (j=0; j<9; j++) a[j][j]=b[j]
void 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;
(4) ;
for(i=0; i<10; i++)
for(j=0; j<9; j++)
printf("%d",a[i] [j] );
if( (5) ) printf(",");
printf ("\n");
getch () ;
参考答案:j<=7
解析: 在主函数中先要调用函数is Value()对数组a进行处理,所以空(4)应填"jsValue(a)"。然后输出数组元素,同一行的元素之间用逗号分隔,所以空(5)应填入"j<=7"。
函数jsValue()是将数组按题目要求进行排序。通过观察发现处理后的数组中元素的顺序与原来的顺序相反并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个同第一个数比较,比它大的就放到临时数组b中的最后,比它小的就放到临时数组b中的最前面,依此类推,所以空(1)应填入“b[k--]”,空(2)应填入“b[n++]”,空(3)应填入“b[n]”。最后将b数组赋给a数组。