C语言刷题(10):写一个函数,使给定的一个3X3的二维整型数组转置,即行列转换

#include <stdio.h>
#define N 3
void main()
{
    void convert(int a[N][N]);
    int a[N][N],i,j;
    printf("input array:\n");
    for(i = 0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    convert(a);
    printf("convert array:\n");
    for(i = 0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
}
void convert(int a[N][N])
{
    int i,j,t;
    for(i = 0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
           t       = a[j][i] ;
           a[j][i] = a[i][j] ;
           a[i][j] = t;
        }
    }
}

总结:矩阵转置,只需要将上三角矩阵与下三角矩阵对调即可。

发布了45 篇原创文章 · 获赞 7 · 访问量 1618

猜你喜欢

转载自blog.csdn.net/qq_38173631/article/details/103955340