【行列转换】C语言二维数组入门

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

目录

1.简介

2.二维数组的声明格式

3.对二维数组元素的输出

4.二维数组的行列转换

4.1思路介绍

4.2代码实现


1.简介

        二维数组的交换可以作为动态规划问题的基础,本文将详细讲述二维数组交换问题,以便读者后期更容易理解动态规划问题。

2.二维数组的声明格式

        

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

         如此代码段,声明了一个三行四列的二维数组。我们可以把他理解为一个矩阵。

         注意:数组是从0开始的。及元素1对应的是num [0][0];这点和坐标很相似     

二维数组行列互换,C语言,c语言,算法,矩阵

3.对二维数组元素的输出

这里我们首先用一维数组的元素输出进行类比

        我们首先定义一个一维数组然后用这个例子来类比二维数组。我们使用一个变量i来控制数组元素的输出。

int a[3]={1,2,3};
for ( i = 0; i < 3; i++)
{
    printf("%d",a[i]);
}

接下来我将说明二维数组的输出方法

        结合下图我们来直观的理解下二维数组的位置关系。我们可以看出i[0][0]是初始的第一排,然后我们把二维数组看成两个一维数组。

二维数组行列互换,C语言,c语言,算法,矩阵

         如图所示,我们直观看到,我们对二维数组num[i][j]进行遍历需要改变i和j的值。也就是两个for循环进嵌套,外层控制行,内层控制列。代码如下:

int num[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
    int i,j;
    for ( i = 0; i < 3; i++)
    {
        for ( j = 0; j < 4; j++)
        {
            printf("%d\t",num[i][j]);
        }
        printf("\n\n");
    }
    

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

4.二维数组的行列转换

4.1思路介绍

        (1)这里先介绍一下红酒杯交换法 。我们想把A,B两个酒杯内的液体互换,这时候我们需要一个空酒杯C,先把A中液体倒进C,然后把B中液体倒进A,然后在把C中液体倒进B。

        (2)同理我们可以利用一个中间变量储存num [1][2]的值然后进行取赋给一个变量,然后在把他的镜像num [2][1]的值赋给他,最后将常量赋值回去。这就完成了互换。

示意图如下:

二维数组行列互换,C语言,c语言,算法,矩阵

4.2代码实现

详细解释见注释:文章来源地址https://www.toymoban.com/news/detail-815491.html

/*
    实现二维数组的翻转
*/

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int num[3][3]={     //声明一个二维数组
        {1,2,3},
        {4,5,6},
        {7,8,9}};
    int i,n,cunt;       //i,n进行行和列的计算,cunt进行承接

    for (i = 0; i < 3; i++)//打印原数组
    {
        for ( n = 0; n < 3; n++)
        {
            printf("%d ",num[i][n]);
        }
        printf("\n");
    }
    
    for ( i = 0; i < 3; i++)//进行行的遍历
    {
        for( n = i; n < 3; n++)//进行列的遍历
        {   
            cunt=num [i][n];    //对空酒杯赋值
            num [i][n]=num [n][i];//交换
            num [n][i]=cunt;        //再次赋值交换完毕
           
        }
        
    } 
    
    printf("\n\n");
for (i = 0; i < 3; i++)         //打印输出
    {
        for ( n = 0; n < 3; n++)
        {
            printf("%d ",num[i][n]);
        }
        printf("\n");
    }

    return 0;
}

到了这里,关于【行列转换】C语言二维数组入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Matlab——矩阵行列互换

    分两种情况如下: 一、将 1*n 的矩阵转换为指定 M*N 的矩阵 假如有4个坐标值: 将其转为 4*3 的矩阵, 很明显结果并不是我们想要的,这是由于 reshape 函数是按列进行排序 的,所以我们在转换的时候要将行数设为 3,列数为坐标点的个数 (即 4),然后 将转换后的取转置 即可得

    2024年02月09日
    浏览(43)
  • 【算法训练-数组 三】【数组矩阵】螺旋矩阵、旋转图像、搜索二维矩阵

    废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是螺旋矩阵,使用【二维数组】这个基本的数据结构来实现 二维数组的结构特性入手 根据题目示例 matrix = [[1,2,3],[4,5,6],[7,8,9]] 的对应输出 [1,2,3,6,9,8,7,4,5] 可以发现,顺时针打印矩阵的顺序

    2024年02月06日
    浏览(51)
  • C语言例题(二维数组)【转置矩阵】【成绩登记】【斐波那契】【简单矩阵查找】【螺旋数阵】【一维数组转二维数组】

    例一:转置矩阵 程序: 输出:通过b[j][i] = a[i][j];这一步实现了转置 进阶:用6个1~20内的随机数按行的顺序生成一个a[2][3]的矩阵,并输出它的转置矩阵 输出: 例2.登记某班三人的数学、英语两门课程的成绩。 分析:此类问题可以通过使用3个一维数组来解决,也可以通过使用

    2024年02月03日
    浏览(42)
  • C语言 : 矩阵转置 (二维数组)

    输入N*N的矩阵,输出它的转置矩阵。矩阵的转置操作,即把矩阵的行元素变为列元素、列元素变为行元素的过程。    第一行为整数N,接着是一个N*N的矩阵。 转置矩阵。 输入样例 1 输出样例 1 解题思路: 输入二维数组。(用到for循环) 将二维数组的行与列互换。(需要两

    2024年01月21日
    浏览(46)
  • C语言例程:用二维数组实现矩阵转置

    本实例将输入的 3×4 矩阵转置为 4×3 矩阵,并输出结果。通过本实例,可以学习如何使用二 维数组。 二维数组定义的一般形式为: 第一部分 基础篇 X2277 类型说明符 数组名[常量表达式][常量表达式] 例如: 定义 a 为 3×4(3 行 4 列)的数组,b 为 7×8(7 行 8 列)的数组。 二

    2024年02月08日
    浏览(56)
  • 将一个简单的矩阵(二维数组)转置 并输出(C语言)

    描述: 输入一个3行4列的矩阵(二维数组)a,接着将矩阵a转置为矩阵b,然后输出矩阵b。 输入: 输入3行,每行输入4个整数,整数之间用空格隔开。 输出: 输出4行,每行输出3个整数,整数之间用空格隔开。 输入样例 1:  输出样例 1:

    2024年02月07日
    浏览(44)
  • 数据结构与算法—一维数组、二维数组、矩阵、顺序串、链接串的C++代码实现

    1、一维数组:ArrayOneD.h 数组这种数据结构可以看作线性表的推广。数组一般采用顺序存储的方法表示。 这是一个模板类 ArrayOneD 的实现,用于表示一维数组。它包括了 构造函数、拷贝构造函数、析构函数、重载下标运算符、重载赋值运算符、求数组长度、重新设置数组长度

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

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

    2024年03月25日
    浏览(59)
  • 【C语言基础入门】二级指针、一维数组与指针、二维数组与指针

    在学习C语言的过程中,理解指针的概念是非常重要的。指针提供了一种直接访问内存地址的方式,使得我们可以更加灵活地管理数据和内存。在本文中,我们将介绍C语言中的二级指针、一维数组与指针,并通过通俗易懂的语言和示例代码来帮助读者理解这些概念。 二级指针

    2024年02月05日
    浏览(55)
  • C语言二维数组中:主次对角线求和,上下三角求和,杨辉三角,矩阵转置

     p8 有些的结论需要直接记住 目录 矩阵转置  主对角线和次对角线 下三角 和上三角(一般是让求和) 下三角  上三角 杨辉三角 不是方阵 需要用到第二个二维数组  b[i][j]=a[i][j] 是方阵     方法1 借助第二个二维数组,同上 方法2    下三角换即可(是方阵的话一般题目都

    2024年01月22日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包