C语言例程:用二维数组实现矩阵转置

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

用二维数组实现矩阵转置

本实例将输入的 3×4 矩阵转置为 4×3 矩阵,并输出结果。通过本实例,可以学习如何使用二
维数组。

实例解析

二维数组的定义

二维数组定义的一般形式为:
第一部分 基础篇 X2277

类型说明符 数组名[常量表达式][常量表达式]

例如:

 int a[3][4],b[7][8]; 

定义 a 为 3×4(3 行 4 列)的数组,b 为 7×8(7 行 8 列)的数组。

二维数组的引用

二维数组的元素也称为双下标变量,二维数组的元素的表示形式为:

数组名[下标][下标]
例如 a[3][4],下标可以是整型常量或是整型表达式,如 a[22-1][3+1]。特别强调不要写成:
a[3,4]或者 a[2
2-1,3+1]的形式。

数组元素可以出现在表达式中,也可以被赋值,例如:

b[1][2]=a[2][3]/3;

在使用数组元素时,应该注意下标值应在已定义的数组大小范围内。定义 a 为 3×4 的数组,
它可用的行下标值最大为 2,列坐标值最大为 3。用 a[3][4]则超过了数组的定义范围。
下标变量和数组说明在形式中有些相似,但两者具有完全不同的含义。数组说明的方括号中
给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的位置标
识。前者只能是常量,后者可以是常量、变量或表达式。

二维数组的初始化

可以用下面的方法对二维数组初始化。
(1)分行给二维数组赋初值。例如:

static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

这种赋初值方法比较直观,把第一个大括弧内的数据赋给第一行的元素,第二个大括弧内的
数据赋给第二行的元素……。
(2)可以将所有数据写在一个大括弧中,按数组排列的顺序对各元素赋初值。例如:

static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

效果与前种方法相同。但第一种方法比较好,一行对一行。用第二种方法,如果数据多,写
出来一大片,就比较容易遗漏,有错误也不容易检查出来。
(3)可以对部分元素赋初值,例如:

static int a[3][4]={{1},{3},{5}};

程序代码

/* 用二维数组实现矩阵的转置 */
#include <stdio.h>
#define ROW 3 /* 矩阵的行数 */
#define COL 4 /* 矩阵的列数 */
int main()
{
     int matrixA[ROW][COL],matrixB[COL][ROW];/* 矩阵的定义 */
    int i,j;
    clrscr(); /* 清屏 */
    printf("Enter elements of the matrixA,"); /* 提示信息 */
    printf("%d*%d:\n",ROW,COL);
    for( i=0; i<ROW; i++ )
    {
        for( j=0; j<COL; j++ )
        {
            scanf("%d",&matrixA[i][j]); /* 输入矩阵 A 的值 */
        }
    }
    for( i=0; i<ROW; i++ )
    {
        for( j=0; j<COL; j++ )
        {
            matrixB[j][i] = matrixA[i][j]; /* 转置 */
        }
    }
    printf("MatrixB,"); /* 输出矩阵 B */
    printf("%d*%d:\n",COL,ROW);
    for( i=0; i<COL; i++ )
    {
        for( j=0; j<ROW; j++ )
        {
            printf("%8d",matrixB[i][j]);
        }
        printf("\n");
    }
    printf("\n Press Any Key to Quit... \n");
    getch();

 return 0;
}

C语言例程:用二维数组实现矩阵转置文章来源地址https://www.toymoban.com/news/detail-480367.html

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

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

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

相关文章

  • 回型矩阵|蛇形矩阵|上三角矩阵|矩阵转置|二维数组打印问题

    二维数组,作为一种存放一系列数的载体,不免和数学中用于存放数的数表——矩阵,有着密切的联系。矩阵本身就有些抽象,需要设计一个程序精准打印出来更是有难度,所以今天便来总结一些二维数组与矩阵打印的问题该如何解决。 (题目取自牛客网BC133-BC138) 给你一个

    2024年02月03日
    浏览(49)
  • 矩阵转置(二维数组)(三种方式 行指针与列指针)

    【问题描述】请写一函数,将一个m*n的整型矩阵转置。注意:请将转置后的数据存储到二维数组中以后,再对二维数组进行输出。要求使用如下的三个函数进行三次转置: void Transpose1(int a[][N], int at[][M], int m, int n);  void Transpose2(int (*a)[N], int (*at)[M], int m, int n); //行指针 void T

    2024年02月03日
    浏览(44)
  • 将一个二维数组的行元素和列元素互换,然后储存到另一个二维数组中(即进行矩阵的转置)。

    案例探究: 将一个二维数组的行元素和列元素互换, 然后储存到另一个二维数组中(即进行矩阵的转置)。 思路: 5        2        0        9                                                            5        3        10 3        7        12      6       

    2024年02月03日
    浏览(50)
  • 数组:矩阵快速转置 矩阵相加 三元组顺序表/三元矩阵 随机生成稀疏矩阵 压缩矩阵【C语言,数据结构】(内含源代码)

    目录 题目: 题目分析: 概要设计: 二维矩阵数据结构: 三元数组三元顺序表顺序表结构: 详细设计: 三元矩阵相加: 三元矩阵快速转置: 调试分析: 用户手册: 测试结果:  源代码: 主程序:  头文件SparseMatrix.h:  头文件Triple.h: 总结: 稀疏矩阵A,B均采用 三元组

    2023年04月26日
    浏览(60)
  • 矩阵转置(函数)(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日
    浏览(101)
  • PTA 用C语言实现矩阵转置

    编写函数,求一个3×3矩阵的转置矩阵。 转置矩阵,将原矩阵的行变为列,列变为行。注意,通过指针访问二维数组时的方法。本题采用的是指向数组元素的指针变量。 void Trans(int(*p)[3])函数调用分析: 只有三种情况: i=1,j=0 (1,0)-(0,1) i=2,j=0 (2,0)-(0,2) i=2,j=1 (2,1)

    2024年02月05日
    浏览(46)
  • 多轴机械臂运动控制:4x4坐标变换矩阵该用C语言的二维数组还是一维数组?

            做多轴机械臂的运动控制,免不了要对4x4的坐标变换矩阵进行乘法,C语言中可以用二维数组或者一维数组来实现矩阵,下面来比较一下二维数组和一维数组的性能差异。         开发环境:Visual Studio 2022,分别在Debug和Release模式下测试函数Multi4x4和Multi16,Re

    2024年03月25日
    浏览(60)
  • C语言:写一个函数,实现3*3矩阵的转置(指针)

    分析:     在主函数 main 中,定义一个 3x3 的整型数组 a,并定义一个指向整型数组的指针 p。然后通过循环结构和 scanf 函数,从标准输入中读取用户输入的 3x3 矩阵的值,并存储到数组 a 中。     接下来,调用 move 函数,传递给它整型数组 a 的地址,即 a 数组的首地址。

    2024年02月05日
    浏览(45)
  • C语言之实现矩阵(3行3列)的转置(即行列互换)

    例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 代码如下所示: 输出结果如下所示:

    2024年02月11日
    浏览(76)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包