例题 旋转方阵
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
打印出一个旋转方阵,见样例输出。
输入描述:
输入一个整数n(1 <= n <= 20), n为方阵的行数。
输出描述:
输出一个大小为n*n的距阵
输入
5
输出
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
代码
向右旋转90的矩阵的代码
cpp
#include <cstdio>
int a[105][105];
int b[105][105];
int main(){
int n,m;
scanf_s("%d%d",&n,&m);
for (int i = 1; i <= n;i++) {
for (int j=1; j <= m; j++) {
scanf_s("%d",&a[i][j]);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
b[j][n-i+1] = a[i][j];//右边旋转90度
}
}
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
cpp
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
b[n-i+1][n-j+1] = a[i][j];//右边旋转180度
}
}