将N*N矩阵中元素的值按列右移1个位置,最右边被移到矩阵最左端,例如,N=3,有下面矩阵(文件名为T8-2.cpp). 1 2 3 3 1 2 4 5 6 6 4 5 7 8 9 9 7 8
时间: 2024-01-07 15:05:10 浏览: 50
输入矩阵阶数n,给n阶矩阵的元素按行序由1到n*n顺序赋值,然后将其向右旋转90度,输出旋转后的矩阵。
好的,这个问题可以用简单的循环和数组操作来解决。下面是一个C++的实现代码:
```cpp
#include <iostream>
using namespace std;
const int N = 3;
int main() {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 输出原始矩阵
cout << "Original matrix:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 右移1个位置
for (int i = 0; i < N; i++) {
int temp = matrix[i][N-1];
for (int j = N-1; j > 0; j--) {
matrix[i][j] = matrix[i][j-1];
}
matrix[i][0] = temp;
}
// 输出右移后的矩阵
cout << "Matrix after right shift:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
这段代码中,我们首先定义了一个3*3的矩阵,并输出原始矩阵。然后,我们对每一行进行右移操作,将最右边的元素移到最左边,并依次向右移动其他元素。最后,输出右移后的矩阵。运行这段代码,输出如下:
```
Original matrix:
1 2 3
4 5 6
7 8 9
Matrix after right shift:
3 1 2
6 4 5
9 7 8
```
可以看到,右移操作成功地将矩阵每一列的元素向右移动了一位,最右边的元素被移到了最左边。
阅读全文