填空题
下面程序的功能是根据键盘输入的n(2≤n≤9),自动产生一个n×n的方阵a,该方阵将自然数以S形形式填充,请填空完善程序。如,n值为5,则将产生如下方阵。
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
#include<stdio.h>
int main()
{
int a[10][10];
int i, j, n;
printf("Input n:/n");
scanf("%d", &n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(
1
)
a[i][j]=n*i+j+1;
else
a[i][j]=(i+1)*n-j;
}
}
printf("Array a is:/n");
for(i=0; i<n; i++)
{
for(j=0; j<
2
; j++)
printf("%4d", a[i][j]);
printf("/n");
}
return 0;
}
【正确答案】
【答案解析】
i%2==0 n[解析] 根据题意,要实现该方阵的自动生成,关键在于分析方阵中每行元素值的填充规则,即偶数行的元素值均是自左向右递增,除第0行外,其他偶数行的值可看作是第0行的对应列值再加上n*i的值,若n为5,则第2行自左向右各元素值分别为11、12、13、14、15,即可分别表示为5*2+1,5*2+2,5*2+3,5*2+4,5*2+5,所以第一填空用以判断控制行下标的变量i是否为偶数,应写为i%2==0;而第二个填空用以实现输出时的列元素个数,应为n。
提交答案
关闭