首页 > 技术文章 > 用二维数组实现矩阵转置

tfxz 2019-03-18 19:40 原文

实例说明:
在这里插入图片描述
这里给出两套源码。

自己写的:

在这里插入图片描述

/**
 * Copyright (c) 1991 - 2016 Arvin Tang.
 * All rights reserved.
 *
 * 文件名称:实例12
 * 简要描述:二维数组的转置
 *
 * 当前版本:1.0
 * 作    者:
 * 完成日期:2016-1-7
 * 修订说明:
 *
 * 取代版本:
 * 作    者:
 * 完成日期:
 * 修订说明:
 */
#include <stdio.h>
#include <stdlib.h>
//
//clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
//但是可以用system("cls");代替,且#include <stdlib.h>。

#define ROW 3//定义行
#define COL 4//定义列

int main(int argc, char const *argv[])
{
    //二维数组转换
    int a[ROW][COL];

    int i,j;

    printf("请输入一个%d行,%d列的矩阵:\n", ROW,COL);

    for(i = 0; i < ROW; i++)
    {
        for(j = 0; j < COL;j++)
        {
            scanf("%d", &a[i][j]);
        }
    }

    system("cls");//清屏

    printf("你刚才输入的是一个%d行,%d列的矩阵:\n", ROW,COL);

    for(i = 0; i < ROW; i++)
    {
        for(j = 0; j < COL;j++)
        {
            printf("%d\t", a[i][j]);
        }

        printf("\n");
    }

    printf("下面将为你转换为一个%d行,%d列的矩阵:\n", COL,ROW);

    for(i = 0; i < COL; i++)
    {
        for(j = 0; j < ROW; j++)
        {
            printf("%d\t", a[j][i]);
        }

        printf("\n");
    }

    return 0;
}

书上的:

/* 用二维数组实现矩阵的转置 */
#include <stdio.h>
#define ROW 3
#define COL 4
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]);
        }
    }

    for( i=0; i<ROW; i++ )
    {
        for( j=0; j<COL; j++ )
        {
            matrixB[j][i] = matrixA[i][j];
        }
    }

    printf("MatrixB,");
    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();
}

原文:https://www.cnblogs.com/arvintang/p/5110264.html

推荐阅读