将一个矩阵逆时针旋转90度,首先可以沿左上角-右下角斜对角线,进行上下交换数据,然后上下数据交换即可。
1 #include <stdio.h> 2 #include <stdlib.h> 3 //矩阵逆时针旋转90度 4 int main() 5 { 6 int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; 7 int b[3][3]; 8 int i; 9 int j; 10 int temp; 11 printf("原始矩阵\n"); 12 for(i=0;i<3;i++){ 13 for(j=0;j<3;j++){ 14 printf("%d ",a[i][j]); 15 } 16 printf("\n"); 17 } 18 19 printf("第一次转换\n"); 20 21 for(i=0;i<3;i++){ 22 for(j=i;j<3;j++){ 23 temp=a[i][j]; 24 a[i][j]=a[j][i]; 25 a[j][i]=temp; 26 } 27 } 28 for(i=0;i<3;i++){ 29 for(j=0;j<3;j++){ 30 printf("%d ",a[i][j]); 31 } 32 printf("\n"); 33 } 34 printf("第二次转换\n"); 35 for(i=0;i<3/2;i++){ 36 for(j=0;j<3;j++){ 37 temp=a[i][j]; 38 a[i][j]=a[3-i-1][j]; 39 a[3-i-1][j]=temp; 40 } 41 } 42 43 for(i=0;i<3;i++){ 44 for(j=0;j<3;j++){ 45 printf("%d ",a[i][j]); 46 } 47 printf("\n"); 48 } 49 50 return 0; 51 }
时间: 2024-10-16 11:33:38