二维数组转置*
题目:
输入一个n行m列的数组,输出他的转置,具体来说:
输出的第i行第j个数字,应是输入的第j行第i个数字。
1 <= n <= 100
1 <= m <= 100
1 <= aiijj <= 1000
Input:
第一行两个整数n, m表示数组的行数和列数 接下来n行,每行m个整数表示数组内容。
Output:
第一行先输出m, n。 接下来输出转置的结果,共m行n列。 其中第i行第j个数字,应是输入的第j行第i个数字。
Sample Input
3 2
1 2
3 4
5 6
Sample Output
2 3
1 3 5
2 4 6
c语言源码如下:
#include<stdio.h>
int main()
{
int a[100][100],b[100][100];
int i,j,n,m;
scanf("%d%d",&n,&m);
if(n>=1&&n<=100&&m>=1&&m<=100)
{
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
b[j][i]=a[i][j];
}
printf("%d %d\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ",b[i][j]);
printf("\n");
}
}
return 0;
}