C语言问题,急求高手(05,4,44)

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:55:25
(44)有下列程序:
main( )
{ int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i+ +)
{ for(j=0;j<i;j+ +)
printf("%4c",' ');
for(j=__;j<4;j+ +)
printf("%4d",num[i][j]);
printf("\n");
}
}
若要按下列形式输出数组右上半三角。
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是( )。
A)i-1 B)i
C)i+1 D)4-i
为什么选B呢,第一个printf里那个空格是什么意思啊,谢谢

你用答案和程序比对一下,你就发现这个规律了
1 2 3 4 是num[0][0]开始到num[0][3] //当i=0时,j=0
6 7 8 是num[1][1]开始到num[1][3] //当i=1时,j=1
11 12 是num[2][2]开始到num[2][3] //当i=2时,j=2
16 是num[3][3]开始到num[3][3] //当i=3时,j=3

第一个printf输出的是每两个数字用一个空格作为分隔符。至于选B个人认为是控制数组行、列输出元素的个数。