矩阵的转置
程序员文章站
2024-01-03 21:38:34
...
一、问题描述
题目描述:
有一个n行m列的矩阵,编写程序输出转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵)
输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
输出描述:
输出m行n列,为矩阵转置后的结果。每个数后面有一个空格
二、解题思路
1、定义整形变量n(行),m(列)
2、定义整型二维数组a[10][10]存放数据
3、利用双层循环输入、输出
4、理解原矩阵与转置矩阵之间元素的关系
三、代码实现
1.读入数据
代码如下:
int n=0,m=0;
int a[10][10];
scanf("%d%d",&h,&l);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
}
2.输出数据
代码如下:
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",a[j][i]);
}
printf("\n");
}
3.完整代码
代码如下(示例):
#include "stdio.h"
int main()
{
int n=0,m=0;
int a[10][10];
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",a[j][i]);
}
printf("\n");
}
return 0;
}
总结
转置矩阵输出的关键是理解原矩阵元素与转置矩阵元素之间的关系