描述:有一个矩阵,将这个矩阵的行列互换得到的新矩阵称为转置矩阵,请编程解答。
输入描述:
第一行包含n和m,表示该一个矩阵包含n行m列,用空格分隔。
第二行输入该矩阵数据元素,共输入n*m个数,表示第一个矩阵中的元素。
输出描述:
输出m行n列的数据元素,为矩阵转置后的结果。每个数后面有一个空格
思路:1.先定义两个行列互换的数组 a[n][m] 和 b[m][n],
利用 for 循环给 a[n][m] 赋值,再利用行列互换的原理
将数组 a[m][n] 里的值依次赋给数组 b[n][m] ;
2.利用 for 循环将 b[n][m] 中的值一一输出;
关键点:如何将 a矩阵 的值赋值给 b矩阵;
注意点:输出 b矩阵 时,行列不要混淆了;
#include<stdio.h>
int main()
{
int n,m;
printf("输入n与m的值:") ;
scanf("%d%d",&n,&m);
int a[n][m];
int b[m][n];
printf("依次输入a矩阵的数据元素:\n") ;
for(int i=0;i<n;i++) //依次输入数据元素
{
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j]; //将a数组元素赋值给行列互换的b数组
}
}
printf("运行结果如下:\n") ;
for(int i=0;i<m;i++) //将b数组元素输出
{
for(int j=0;j<n;j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
代码运行结果如下:
总结:今天的出题与解题就到这里辣,有不会的小伙伴们
可以评论区发表意见,我会一一解答哦!
如果您觉得小编写的还可以或者还有哪些地方需要改进的话评论区留言好嘛!
感谢您的阅读!