C语言 : 矩阵转置 (二维数组) | 您所在的位置:网站首页 › c语言用键盘输入数据 › C语言 : 矩阵转置 (二维数组) |
题目描述:
输入N*N的矩阵,输出它的转置矩阵。矩阵的转置操作,即把矩阵的行元素变为列元素、列元素变为行元素的过程。 输入:第一行为整数N,接着是一个N*N的矩阵。 输出:转置矩阵。 输入样例 1输出样例 1 2 1 2 1 2 1 1 2 2 解题思路: 输入二维数组。(用到for循环)将二维数组的行与列互换。(需要两个二维数组)输出二维数组。(for循环) 解法: #include int main(void) { int m,j,i; scanf("%d",&m); int a[m][m]; int b[m][m]; /* 二维数组的赋值 */ for(i=0;i scanf("%d",&a[i][j]); } } /* 行,列的转化 */ for(i=0;i b[j][i]=a[i][j]; } } /* 输出距阵 */ for(j=0;j if(i==m-1&&j!=m-1) printf("%d\n",b[j][i]); else printf("%d ",b[j][i]); } } return 0; } 小结: 做本题的关键点在于是否了解二维数组,知道二维数组的常用赋值方法(循环)。输出结果时要注意输出的格式(这里要特别小心,如果没有if语句,输出的结果将会在一行,而不是像题目要求的矩阵。)【作者曾在这里错了好久都没想出来,还是同学帮忙才知道的】记得用到二维数组,几乎每一步都要循环。(二维数组的一切都和一维数组不太一样) |
CopyRight 2018-2019 实验室设备网 版权所有 |