20200926--图像旋转(奥赛一本通P96 9 多维数组)
输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。
输入:第1行包含两个整数n和m(1<=n<=100,1<=m<=100),表示图像包含像素点的行数和列数。
接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在1-255之间。
输出:m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。
样例输入:
3 3
1 2 3
4 5 6
7 8 9
样例输出:
7 4 1
8 5 2
9 6 3
#include <bits/stdc++.h>
using namespace std;
int a[101][101];
int n,m;//分别代表像素点的行数和列数
int main()
{
//数据输入
scanf("%d %d",&n,&m);//注意%d之间有空格,没有也行,因为没那么严格,但原题有要求的话,一定要留有空格
for(int i=1;i<=n;i++)
{ for(int j=1;j<=m;j++)
{scanf("%d",&a[i][j]);}
}
//从第一列到最后一列,从最后一行到第一行的规律输出
for(int i=1;i<=m;i++)
{ for(int j=n;j>0;j--)
{printf("%d ",a[j][i]);}
printf(" \n");
}
return 0;
}