[ C语言练习题 5 ] 矩阵转置(将矩阵的行列互换得到的新矩阵)

本文解析了如何通过编程解决牛客网上的矩阵转置问题,介绍了矩阵转置概念、二维数组应用,并提供了示例和代码实现。适合复习矩阵操作技巧和二维数组编程实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目来源:

矩阵转置_牛客题霸_牛客网

描述

KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:

第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:

输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。

示例1

输入:

2 3
1 2 3
4 5 6

输出:

1 4 
2 5 
3 6 

实现代码:

int main()
{
	int n, m;//n行m列
	scanf("%d %d", &n, &m);
	int i = 0;
	int j = 0;
	int arr[10][10] = {0};
	for (i = 0; i < n; i++)
	{
		for (j = 0; j <m; j++) {
			scanf("%d", &arr[i][j]);
		}
	}
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++) {
			printf("%d ", arr[j][i]);
		}
		printf("\n");
	}
	return 0;
}

题目分析:

我们先解读一下转置矩阵的概念:

矩阵转置:将矩阵的行列互换得到的新矩阵称为转置矩阵

 

由图我们可以看出,矩阵是二维布局,因此我们使用二维数组解决这个问题。

由上面的分析我们就可以轻松得知,只需要将创建的二位数组中的行和列在打印的时候调换一下就可以解决问题

创建和打印的代码我们就很简单的写出来: 

for (i = 0; i < n; i++)
	{
		for (j = 0; j <m; j++) {
			scanf("%d", &arr[i][j]);
		}
	}
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++) {
			printf("%d ", arr[j][i]);
		}
		printf("\n");
	}

其中我们要尤为关注的是,在每行打印完之后要记得换行

因此我们再看一下完整的代码:

 结论测试:

示例1

输入:

2 3
1 2 3
4 5 6

输出:

1 4 
2 5 
3 6 

 实现截图:

 

示例2

输入:

3  1

2

3

4

输出:

2  3  4 

 实现截图:

 我们放在牛客网下也是可以跑过去的 

总结:

通过这个练习题,复习了矩阵的转置,同时也灵活使用了二维数组。

如果各位小伙伴看完觉得感兴趣的话可以尝试一下哦~

矩阵转置_牛客题霸_牛客网

各位小伙伴觉得本篇博客对你有帮助的话麻烦点赞收藏+关注哦~

如果各位大佬发现任何错误也麻烦直接评论在下面哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白又菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值