将一个方阵旋转90度
2013-05-14 13:30
253 查看
Problem
Rotate a matrix by 90 degrees anti-clockwise
Solution
Output
Rotate a matrix by 90 degrees anti-clockwise
Solution
#include <iostream> using namespace std; int** create_matrix(int row, int col) { int **m = new int* [row]; for(int i = 0; i < row; i++){ m[i] = new int[col]; } return m; } void delete_matrix(int** m, int row) { for(int i = 0; i < row; i ++){ delete[] m[i]; } delete []m; } void print_matrix(int** m, int row, int col) { for(int i = 0; i < row; i ++){ for(int j = 0; j < col; j++){ cout << m[i][j] << " "; } cout << endl; } } void initial_matrix(int **m, int row, int col) { for(int i = 0; i < row; i++){ for(int j = 0; j < col; j ++){ m[i][j] = rand() % 100; } } } void rotate_matrix(int **m, int size) { for(int level = 0; level < size / 2; level ++){ for(int i = level; i < size - level - 1; i ++){ int t = m[level][i]; m[level][i] = m[i][size - 1 - level]; m[i][size - 1 - level] = m[size - 1 - level][size - 1 - i]; m[size - 1 - level][size - 1 - i] = m[size - 1 - i][level]; m[size - 1 - i][level] = t; } } } int main(int argc, char* argv[]) { int size = 6; int **m = create_matrix(size, size); int i,j; initial_matrix(m, size, size); cout << "before rotating" << endl; print_matrix(m, size, size); rotate_matrix(m, size); cout << "after rotating" << endl; print_matrix(m, size, size); return 0; }
Output
before rotating 41 67 34 0 69 24 78 58 62 64 5 45 81 27 61 91 95 42 27 36 91 4 2 53 92 82 21 16 18 95 47 26 71 38 69 12 after rotating 24 45 42 53 95 12 69 5 95 2 18 69 0 64 91 4 16 38 34 62 61 91 21 71 67 58 27 36 82 26 41 78 81 27 92 47
相关文章推荐
- matlab 对一个文件夹里的所有图像进行批量旋转90度并保存
- 方阵原地顺时针旋转90度
- C++ 方阵原地旋转90度
- 输入一个n*n的字符矩阵,把它逆时针旋转90度后输出:
- 把一个方阵顺时针旋转。
- 将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入
- 将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入
- 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转
- 将一个DIV旋转的某一角度即90度/180度/270度及放大等问题
- 使用一个额外变量解决”请用最少的额外空间将一个M*N的矩阵旋转90度“
- 将一个DIV旋转的某一角度,任意角度,90度,放大等等问题~
- 今天遇到一个很奇怪的问题,XP系统屏幕全部旋转90度
- Java 数组转置 方阵顺时针旋转90度
- 1.6 将一个NxN矩阵向右旋转90度
- 输入一个n*n的字符矩阵,把它逆时针旋转90度后输出
- CC150:将一个矩阵旋转90度
- 网上看到的题:用最小空间度将一个M*N的矩阵旋转90度
- 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。
- 一张图像表示成NxN的矩阵,图像中每个像素是4个字节,写一个函数把图像旋转90度。 你能原地进行操作吗?(即不开辟额外的存储空间)
- java实现把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如{3,4,5,1,2}为{1,2,3,4,5}