解题思路:可以定义两个数组:数组a为m行n列,存放指定的m*n个数。数组b为n行m列,开始时未赋值。只要将a数组中的元素a[i][j]存放到b数组中的 b[j][i]元素中即可。用嵌套的for循环即可完成此任务。
具体代码如下:
#include<stdio.h>
int main()
{
int m = 0,n = 0;
printf("请您分别输入几行几列?\n");
scanf("%d%d",&m,&n);
int ar[m][n];
int br[n][m];
printf("请您填充该二维数组的元素:\n");
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
scanf("%d",&ar[i][j]);
}
}
printf("原始二维数组表示为:\n");
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
printf("%d ",ar[i][j]);
br[j][i] = ar[i][j];
}
printf("\n");
}
printf("经过调换后的二维数组表示为:\n");
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
printf("%d ",br[i][j]);
}
printf("\n");
}
return 0;
}
结果展示如下:
请您分别输入几行几列?
2 3
请您填充该二维数组的元素:
1 2 3 4 5 6
原始二维数组表示为:
1 2 3
4 5 6
经过调换后的二维数组表示为:
1 4
2 5
3 6
请您分别输入几行几列?
3 5
请您填充该二维数组的元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
原始二维数组表示为:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
经过调换后的二维数组表示为:
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15