求助!ATT gs3 cm10.1刷回stock rom死翘翘了# PDA - 掌中宝
i*e
1 楼
关于第一章的N*N矩阵向右旋转90度的题。 怎么也得不到想要的结果,我按照答案修改
了我的程序,可是还是不对。
我得到的结果是:
Original matrix:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
After rotation:
99 81 72 63 54 45 36 27 18 0
91 88 72 63 54 45 36 27 11 1
92 82 77 63 54 45 36 22 12 2
93 83 73 66 54 45 33 23 13 3
94 84 74 64 55 44 34 24 14 4
95 85 75 65 45 44 35 25 15 5
96 86 76 36 56 46 33 26 16 6
97 87 27 67 57 47 37 22 17 7
98 18 78 68 58 48 38 28 11 8
9 89 79 69 59 49 39 29 19 0
我的实现:
void rotateMatrix(int **matrix, int size)
{
int temp;
for (int i = 0; i < size / 2; ++i) {
for (int j = i; j < size - i; ++j) {
// save the top line elements
temp = matrix[i][j];
// move the leftmost column elements to the top line
matrix[i][j] = matrix[size - j - 1][i];
// move the bottom line elements to the leftmost column
matrix[size - j - 1][i] = matrix[size - i - 1][size - j - 1];
// move the rightmost column elements to the bottom line
- i - 1];
matrix[size - i - 1][size - j - 1] = matrix[j][size - i - 1];
// move the top line elements to the rightmost column
matrix[j][size - i - 1] = temp;
}
}
}
我转了两个小时,已经彻底晕菜了, 请高人给我指点一下我哪里出了问题。 谢谢!
了我的程序,可是还是不对。
我得到的结果是:
Original matrix:
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
After rotation:
99 81 72 63 54 45 36 27 18 0
91 88 72 63 54 45 36 27 11 1
92 82 77 63 54 45 36 22 12 2
93 83 73 66 54 45 33 23 13 3
94 84 74 64 55 44 34 24 14 4
95 85 75 65 45 44 35 25 15 5
96 86 76 36 56 46 33 26 16 6
97 87 27 67 57 47 37 22 17 7
98 18 78 68 58 48 38 28 11 8
9 89 79 69 59 49 39 29 19 0
我的实现:
void rotateMatrix(int **matrix, int size)
{
int temp;
for (int i = 0; i < size / 2; ++i) {
for (int j = i; j < size - i; ++j) {
// save the top line elements
temp = matrix[i][j];
// move the leftmost column elements to the top line
matrix[i][j] = matrix[size - j - 1][i];
// move the bottom line elements to the leftmost column
matrix[size - j - 1][i] = matrix[size - i - 1][size - j - 1];
// move the rightmost column elements to the bottom line
- i - 1];
matrix[size - i - 1][size - j - 1] = matrix[j][size - i - 1];
// move the top line elements to the rightmost column
matrix[j][size - i - 1] = temp;
}
}
}
我转了两个小时,已经彻底晕菜了, 请高人给我指点一下我哪里出了问题。 谢谢!