C数组实现矩阵的转置

直接上代码,在代码中有对矩阵的学习,包括初始化学习以及如何使用等。

#include <stdio.h>

/**
 * 给出提示,要求输入数组A
 * ,通过二维数组,进行数组的转置
 * 得出数组B,输出结果
 *
 * 该实例主要是为了进行学习二维数组
 * @brief main
 * @return
 */
int main(void)
{
    /**
     * 二维数组的初始化:
     * 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},{2},{3}};
     * 相当于该数组为
     *  1 0 0 0
     *  2 0 0 0
     *  3 0 0 0
     */

    //下面进行实例编写
    int row,colume;

    printf("Please the number of row and colume of the array(divided by ','):\n");
    scanf("%d,%d",&row,&colume);  //获取输入的行数和列数

    //定义数组A
    int array[row][colume];

    int i,j;

    //获取用户的输入来填充数组A
    for(i = 0;i < row;i++){
        for(j = 0;j < colume;j++){
            printf("Please enter the number in (%d,%d):\n",i,j);

            scanf("%d",&array[i][j]);
        }
    }

    //定义数组B
    int MatrixB[colume][row];

    //进行转置
    /**
     *  两个数组如果相互转置的话,
     *  则一个数组的行等于另一个数组的列
     *  一个数组的列等于另一个数组的行
     *  注意:
     *  转置之后的矩阵的行数和列数为转置之前的列数和行数
     */
    for(i = 0;i < colume;i++){
        for(j = 0;j < row;j++){
            MatrixB[i][j] = array[j][i];
        }
    }

    //输出矩阵B
    for(i = 0;i < colume;i++){
        for(j = 0;j < row;j++){
            printf("%d\t",MatrixB[i][j]);
        }

        printf("\n");
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天堂1223

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

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

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

打赏作者

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

抵扣说明:

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

余额充值