PTA 用C语言实现矩阵转置

这篇具有很好参考价值的文章主要介绍了PTA 用C语言实现矩阵转置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目要求

编写函数,求一个3×3矩阵的转置矩阵。

编程提示

转置矩阵,将原矩阵的行变为列,列变为行。注意,通过指针访问二维数组时的方法。本题采用的是指向数组元素的指针变量。

输入样例

1 2 3
4 5 6
7 8 9

输出样例

1 4 7
2 5 8
3 6 9

全部代码

#include <stdio.h>
void Trans(int(*p)[3])
{
	int t, i, j;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j <= i; j++)
		{
			t = *(*(p + i) + j);
			*(*(p + i) + j) = *(*(p + j) + i);
			*(*(p + j) + i) = t;
		}
	}
}
void main()
{
	int a[3][3], i, j;
	for (i = 0; i < 3; i++)//原矩阵输入
	{
		for (j = 0; j < 3; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	Trans(a);
	for (i = 0; i < 3; i++)//转置输出
	{
		for (j = 0; j < 2; j++)
		{
			printf("%d ", a[i][j]);
		}
        printf("%d",a[i][j]);	//每行最后一个数
		printf("\n");
	}
}

分析

void Trans(int(*p)[3])函数调用分析:
只有三种情况:文章来源地址https://www.toymoban.com/news/detail-753635.html

  1. i=1,j=0 (1,0)->(0,1)
  2. i=2,j=0 (2,0)->(0,2)
  3. i=2,j=1 (2,1)->(1,2)
    由于i,j指的是数组序号,所以(i+1)为行,(j+1)为列。
    只用转置三次即可。

到了这里,关于PTA 用C语言实现矩阵转置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言实现PTA6-3 求集合数据的均方差

    本题希望输入 n (0n=100)个整数,求n个整数的均方差。若将 n个数的平均值记为 Avg,则均方差计算公式为: 函数接口定义: 函数Avg计算并返回数组的平均值;函数StdDev计算并返回n个数据的均方差。 其中  N  和  data  都是用户传入的参数。  N  是要计算的数据个数;  data  

    2024年02月11日
    浏览(22)
  • 稀疏矩阵转置算法(C语言)

    (参考数据结构教材,严蔚敏,吴伟民版 p99,多谢阅读,望对您有帮助) 无论是几维的数组,在计算机中都是 以一维数组 的方式进行存储的。 矩阵:相当于 二维数组 ,它的存储,依然是用一维数组的方式进行存储。 nxn的矩阵,在计算机空间上, 需要nxn个空间 。 稀疏矩

    2024年02月01日
    浏览(31)
  • PTA-求矩阵各行元素之和

    本题要求编写程序,求一个给定的 m × n 矩阵各行元素之和。 输入格式: 输入第一行给出两个正整数 m 和 n (1≤ m , n ≤6)。随后 m 行,每行给出 n 个整数,其间 以空格分隔。 输出格式: 每行输出对应矩阵行元素之和。 输入样例: 输出样例: 需要注意的点是:计算一行输

    2024年02月04日
    浏览(32)
  • PTA:求矩阵不靠边元素之和

    求矩阵的所有不靠边元素之和,矩阵行的值m从键盘读入(2=m=10),调用自定义函数Input实现矩阵元素从键盘输入,调用Sum函数实现求和。(只考虑float型,且不需考虑求和的结果可能超出float型能表示的范围)。 函数接口定义: void Input (float a[][N], int m ); float Sum ( float a[][N], int m )

    2024年02月03日
    浏览(25)
  • [C++/PTA] 矩阵的乘法运算

    线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化为一个数,当row为1时,为一个行向量,当column为1时,为一个列向量。 建立一个整数矩阵类matrix,其私有数据成员如下: 建立该整数矩阵类matrix构造函数; 建立一个 *(乘号)的运算符重载,

    2024年02月04日
    浏览(25)
  • 【PTA】7-15 求矩阵各行元素之和

    本题要求编写程序,求一个给定的m×n矩阵各行元素之和。 输入格式: 输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间 以空格分隔。 输出格式: 每行输出对应矩阵行元素之和。 输入样例: 输出样例:

    2024年02月05日
    浏览(29)
  • PTA L1-048 矩阵A乘以B

    前言:内容包括四大模块:题目,代码实现,大致思路,代码解读 给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列,B有Rb​行、Cb​列,则只有Ca​与Rb​相等时,两个矩阵才能相乘。 输入格式: 输入

    2024年02月04日
    浏览(25)
  • PTA 7-2 求矩阵的局部极大值

    给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。 输入格式: 输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的

    2024年02月04日
    浏览(32)
  • PTA 7-18 求矩阵中的最大小值

    输入一个n×m的整数矩阵(n=10,m=10),然后输出其中的最大值、最小值,并输出这两个值的下标。 输入格式: 输入矩阵的行数n和列数m(n=10,m=10),然后输入所有矩阵中的数据。 输出格式: 第一行输出n×m的数组中的最大值及其下标。每两项之间一个空格。 第二行输出n×m的数组中的最

    2024年02月04日
    浏览(28)
  • 矩阵转置(函数)(C语言实现)

    【题目描述】 写一个函数,将一个n*n(n10)的二维数组进行转置,即行列交换。要求在主函数中完成输入和输出。 【输入说明】 输入第一行只包括1个数字,表示n,接下来有n行,每行有n个整数。 【输入样例】 3 1 2 7 3 4 8 5 6 9 【输出样例】 1 3 5 2 4 6 7 8 9 代码实现 #inclu

    2024年02月01日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包