程序填空题:编写程序实现将一个m行n列的矩阵转置。
编写程序实现将一个m行n列的矩阵转置。
输入样例1:
3 3
1 2 3
4 5 6
7 8 9
输出样例1:
1 4 7
2 5 8
3 6 9
输入样例2:
3 4
11 22 33 44
21 22 23 24
31 32 33 34
输出样例2:
11 21 31
22 22 32
33 23 33
44 24 34
c++
源代码:
#include <stdio.h>
int main(void)
{
int m,n,i,j;
scanf("%d%d",&m,&n);//输入原始矩阵的行数m和列数n(用空格分隔)
int a[m][n],b[n][m];//定义变长二维数组
for(i=0;i<m;i++)//分行输入原始矩阵
for(j=0;j<n;j++)
scanf("%d",&a[][]);
for(i=0;i<n;i++)//外循环控制行号
for(j=0;j<m;j++)//内循环控制列号
b[i][j]=a[][];//原始矩阵行元素成为转置矩阵列元素
for(i=0;i< ;i++)//分行输出转置矩阵
{ for(j=0;j<m;j++)
printf("%6d",b[i][j]);//每个数据占6个字符宽度
printf("\n");
}
return 0;
}
答案:
第1空: i
第2空: j
第3空: j
第4空: i
第5空: n
输入样例1:
3 3
1 2 3
4 5 6
7 8 9
输出样例1:
1 4 7
2 5 8
3 6 9
输入样例2:
3 4
11 22 33 44
21 22 23 24
31 32 33 34
输出样例2:
11 21 31
22 22 32
33 23 33
44 24 34
c++
源代码:
#include <stdio.h>
int main(void)
{
int m,n,i,j;
scanf("%d%d",&m,&n);//输入原始矩阵的行数m和列数n(用空格分隔)
int a[m][n],b[n][m];//定义变长二维数组
for(i=0;i<m;i++)//分行输入原始矩阵
for(j=0;j<n;j++)
scanf("%d",&a[][]);
for(i=0;i<n;i++)//外循环控制行号
for(j=0;j<m;j++)//内循环控制列号
b[i][j]=a[][];//原始矩阵行元素成为转置矩阵列元素
for(i=0;i< ;i++)//分行输出转置矩阵
{ for(j=0;j<m;j++)
printf("%6d",b[i][j]);//每个数据占6个字符宽度
printf("\n");
}
return 0;
}
答案:
第1空: i
第2空: j
第3空: j
第4空: i
第5空: n