N*N二维数组转置,将二维数组的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线作镜面反转。

#include <stdio.h>
#define N 5
int main()
{
    //定义N*N二维数组及变量
    int arr[N][N]=
    {
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5},
        {1,2,3,4,5}
    };
    int i=0,j=0,temp;
    //输出原矩阵
    printf("原矩阵:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }
    //转置
    for(i=0;i<N;i++)
    {
        for(j=i+1;j<N;j++)
        {
            temp=arr[i][j];
            arr[i][j]=arr[j][i];
            arr[j][i]=temp;
        }
    }
    //输出转置后矩阵
    printf("转置后:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

运行截图

 
返回顶部