欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

矩阵的转置

程序员文章站 2024-01-03 21:25:34
...
#include <stdio.h>
#define N 3

int main()
{
    int a[N][N],i,j,temp;
    printf("原始矩阵为:\n");
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
        {
            if(j>i)
            {
                temp=a[i][j];
                a[i][j]=a[j][i];
                a[j][i]=temp;
            }

        }
    printf("转置后矩阵为:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%-4d",a[i][j]);
        printf("\n");
    }
    return 0;
}

第二种方法

#include <stdio.h>
#define N 3

int main()
{
    int a[N][N],i,j,temp;
    printf("原始矩阵为:\n");
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<N;i++)
        for(j=0;j<i;j++)
        {
            temp=a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=temp;
        }
    printf("转置后矩阵为:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%-4d",a[i][j]);
        printf("\n");
    }
    return 0;
}

矩阵的转置

第三种方式

用第二个数组存储转置后的矩阵

#include <stdio.h>
#define N 3

int main()
{
    int a[N][N],b[N][N],i,j,temp;
    printf("原始矩阵为:\n");
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
        {
            b[j][i]=a[i][j];
        }
    printf("转置后矩阵为:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%-4d",b[i][j]);
        printf("\n");
    }
    return 0;
}

矩阵的转置

上一篇:

下一篇: