任意给定一个n*m的矩阵,矩阵的行数为n,列数为m。你的任务是实现矩阵的转置,即行列互换。
输入格式:
第一行为两个整数n、m,代表矩阵的行数与列数,n、m的范围均是1—100。然后输入n*m个整数,即此矩阵的元素。。
输出格式:
经过矩阵转置得到的新矩阵,新矩阵占m行,n列。每行的每个元素用空格分隔,注意最后一个数的后面为换行符。
输入样例:
3 5
5 5 5 5 5
3 3 3 3 3
1 1 1 1 1
输出样例:
5 3 1
5 3 1
5 3 1
5 3 1
5 3 1
MY IDEAS''
1.这题需要使用二维数组,然后输出的时候,内数组按顺序输出
2.写题前没有想那么多细节,但写完出来就想到很多注意的地方,说明实践很重要。
3.两层循环输入,两层循环输出,注意输出的时候要注意循环内外交换了。在输出的时候注意区分末尾下标为n-1的时候,要换行,其他时候就输出加空格就好。
#include <stdio.h>
int main ()
{
int n,m;
int i,j;
scanf ("%d%d",&n,&m);
int num[n][m];
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
scanf ("%d",&num[i][j]);
}
}
for (j=0;j<m;j++)
{
for (i=0;i<n;i++)
{
if (i==n-1) printf ("%d\n",num[i][j]);
else printf("%d ",num[i][j]);
}
}
}