# 将N阶矩阵中的边界九十度旋转

    xiaoxiao2023-10-13  140

    题目 将N阶矩阵中的边界九十度旋转 以四阶矩阵为例

    做题思路 首先思考四阶矩阵边界各数之间的关系 旋转前与旋转后 第一行与第四列: 第一行第一个数的位置是a[0][0],第四列第一个数的位置是a[0][3], 第一行第二个数的位置是a[0][1],第四列第二个数的位置是a[1][3], 第一行第三个数的位置是a[0][2],第四列第三个数的位置是a[2][3], 第一行第四个数的位置是a[0][3],第四列第四个数的位置是a[3][3], 通过上面的例子可以得出规律:a[0][i]=b[i][3] 由此可以推导其他边界的规律。

    #include <stdio.h> #define N 4// void main() { //定义两个个N阶矩阵以及相关变量// int a[N][N],b[N][N]; int i,j; //输入N阶矩阵的值,使a[N][N]和b[N][N]的值都一样// for(i=0;i<N;i++) for(j=0;j<N;j++) { scanf_s("%d",&a[i][j]); b[i][j]=a[i][j]; } //进行旋转九十度// for(i=0;i<N;i++) { b[i][N-1]=a[0][i]; b[0][i]=a[N-1-i][0]; b[N-1][i]=a[N-1-i][N-1]; b[i][0]=a[N-1][i]; } //输出旋转之后的矩阵// for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("M",b[i][j]); printf("\n"); } }
    最新回复(0)