其实二维数组的旋转无非是选择输出。
例如3*4的矩阵要右转90度。
不就是把旋转前的第2行第0列第一个输出,从下往上依次输出,从左往右输出。
因为在编译器中是按行输出的,所以旋转后的新矩阵变为4*3.
#include <stdio.h>
#include <stdlib.h>
#define N 90
int main()
{
int a[N][N],n,m,i,j;
scanf("%d%d",&n,&m); //输入n==3,m==4
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++){ //i改为控制列,最大为m==4
for(j=0;j<n;j++){ //j改为控制行,最大为n==3
printf("%d ",a[n-j-1][i]);
}
printf("\n");
}
return 0;
}