本人有一道C语言题目,有其解答,但是看不懂是为什么。。。以下是解答:知道的在旁边加一下注释,不懂循环

2024-12-27 19:24:29
推荐回答(3个)
回答1:

# include
int main ()
{
int a[2][3]={{1,2,3},{4,5,6}}; //申明并初始化一个2X3矩阵
int b[3][2],i,j; //申明一个3X2矩阵
printf("array a:\n");
for (i=0;i<=1;i++) //这里是双重循环,i从0到1,就是从a的第0行到第1行
{
for(j=0;j<=2;j++) //j从0到2,就是从a的第0列到第2列
{
printf("%5d",a[i][j]); //整个循环就打印出矩阵a
b[j][i]=a[i][j]; //将矩阵a的转置赋给b
}
printf("\n");
}
printf("array b:\n");
for (i=0;i<=2;i++) //这里是双重循环,i从0到2,就是从b的第0行到第2行
{
for(j=0;j<=1;j++) //j从0到1,就是从b的第0列到第1列
printf("%5d",b[i][j]); //输出b
printf("\n");
}
return 0;
}
循环语句: for(开始循环的值; 循环继续的条件; 每次循环执行的操作)
数组输出需要单循环,矩阵需要双重循环

回答2:

这就是矩阵转置而已
for (i=0;i<=1;i++) //这里是显示一下A矩阵,顺便进行转置操作
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]); //显示A矩阵的元素 ,如a[0][0]
b[j][i]=a[i][j];//这里是转置的基本操作,将 a[i][j]的值给b[j][i],意思就是把A矩阵按从左上到右下的对角线进行翻转,楼主你可以自己在草稿纸上画来看一下,或者百度一下转置矩阵就行了
}
printf("\n");
}

回答3:

# include
int main ()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\n");
for (i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]); /*这句配合循环是用来打印数组a[2][3]的*/
b[j][i]=a[i][j]; /*这句配合循环使b[3][2]成为a[2][3]的转置*/
}
printf("\n");
}
printf("array b:\n");
for (i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);/*这句配合循环是用来打印b[3][2]的即a[2][3]的转置*/
printf("\n");
}
return 0;
}