信息学奥赛一本通(c++):1127:图像旋转
活动地址:CSDN21天学习挑战赛
一、题目
1127:图像旋转
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。
【输入】
第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。
接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0∼255之间。
【输出】
m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。
【输入样例】
3 3 1 2 3 4 5 6 7 8 9
【输出样例】
7 4 1 8 5 2 9 6 3
二、思路
顺时针旋转90度 也就是矩阵向右转
双层for循环 列数变成行数 每行倒序填充
三、代码
#include<iostream>
using namespace std;
int main()
{
int m,n,t;
cin>>m>>n;
int a[m][n],b[n][m];
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cin>>a[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=m-1;j>=0;j--)
{
cout<<a[j][i]<<" ";
}
cout<<endl;
}
return 0;
}