<center><h2>1055: 图像旋转问题</h2><span class="green">时间限制: </span>1 Sec <span class="green">内存限制: </span>256 MB
<span class="green">提交: </span>54 <span class="green">解决: </span>0
[<a target=_blank href="http://49.123.90.129/JudgeOnline/submitpage.php?id=1055">提交</a>][<a target=_blank href="http://49.123.90.129/JudgeOnline/problemstatus.php?id=1055">状态</a>][<a target=_blank href="http://49.123.90.129/JudgeOnline/bbs.php?pid=1055">讨论版</a>]</center><h2>题目描述</h2><div class="content"><p>旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。</p><p>计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。</p></div><h2>输入</h2><div class="content"><p>输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
接下来n行每行包含m个整数,表示输入的图像。</p></div><h2>输出</h2><div class="content"><p>输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。</p></div><h2>样例输入</h2><pre class="content"><span class="sampledata">2 3
1 5 3
3 2 4</span>
样例输出
3 4
5 2
1 3
#include <iostream>
using namespace std;
int main(){int n, m;cin >> n >> m;int **a = new int*[n];int i = 0, j = 0;for (i = 0; i < n; i++){a[i] = new int[m];}for (i = 0; i < n; i++){for (j = 0; j < m; j++){cin >> a[i][j];}}for (i = m - 1; i >= 0; i++){for (j = 0; j <n; j--)cout << a[j][i]<<' ';cout << endl;}system("pause");return 0;
}
记住动态创建二维数组的方法。是分两步。
题目不难,但是要细心,一不小心会越界。