c语言for循环的题求详解,

2024-12-26 09:00:01
推荐回答(4个)
回答1:

你的代码格式太乱了,我梳理一下:
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循环对二维数组a[4][4]进行遍历赋值,每个元素的值等于其行号及列号之和,例如a[0][1]=0+1=1,a[2][3]=2+3=5;循环结束后数组a[4][4]的16个元素赋值完毕。

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循环对二维数组a[4][4]进行遍历,将所有对应的元素值互换,例如a[1][3]与a[3][1]的值互换,a[2][4]与a[4][2]的值互换(其实本身它们的值就是相等的)。

for(i=0;i<4;i++) { printf("\n"); for(j=0;j<4;j++) printf("%2d",a[i][j]);
这个简单了,就是顺序输出a[4][4]全部16个元素的值,每输出四个值就换一行。

回答2:

不标准

回答3:

main()
{
int a[4][4],i,j,k; //定义变量
for(i=0;i<4;i++) // for嵌套for进行一个一个的赋值
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++) //输出交换之后的数组数,每行输出4个数之后就换行
{
printf("\n");
for(j=0;j<4;j++)
printf("%2d",a[i][j]);
}
}

回答4:

第一个双for循环是给a[4][4]这个二维数组赋初值,第二个双for循环是将这个二维数组中的数进行行列互换。然后输出。