一道C语言题目,求答案及详细解析

来源:百度知道 编辑:UC知道 时间:2024/05/19 13:50:19
#include <stdio.h>
main()
{int a [4][4],i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++) a[i][j]=i+j;
for(i=1;i<4;i++)
for(j=0;j<4;j++) {k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}
for(i=0;i<4;i++)
{printf("\n");
for(j=0;j<4;j++) printf("%2d",a[i][j]);
}
}

输出结果为:

0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6

#include <stdio.h>
main()
{int a[4][4],i,j,k;
for(i=0;i<4;i++) //对数组a[4][4]的每一行进行赋值
for(j=0;j<4;j++) a[i][j]=i+j; //对数组a[4][4]的每一个元素进行赋值,即将i+j赋值给a[i][j]
for(i=1;i<4;i++) //对数组的每一行元素进行(如下)处理
for(j=0;j<4;j++) {k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}//将数组对角线的对应上下的元素进行交换 ,比如:
//a11 a12 a13 a14 a12和a21交换,a13和a31交换,
//a21 a22 a23 a24 a23和a32交换,依次类推
//a31 a32 a33 a34
//a41 a42 a43 a44

for(i=0;i<4;i++) //输出数组的每一行元素
{printf("\n"); //换行
for(j=0;j<4;j++) printf("%2d",a[i][j]);//输出数组的每一个元素
}
}

输出
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6

#include <stdio.h>
void main()
{
int a [4][4],i,j,k;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
a[i][j]=i+j;
}
}
for(i=1;i<4;i++){
for(j=0;j<