你能用C++完成下面的题目嘛:给定一个n*n的矩阵,输出他们顺时针旋转90度后的结果,注意,每个数的后面都有空格
时间: 2024-03-03 22:47:18 浏览: 82
当然可以!以下是C++代码:
```c++
#include <iostream>
using namespace std;
const int MAXN = 105;
int a[MAXN][MAXN];
int main() {
int n;
cin >> n;
// 读入矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
// 旋转90度
for (int j = 0; j < n; j++) {
for (int i = n - 1; i >= 0; i--) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
以上代码可以实现将一个n*n的矩阵顺时针旋转90度,并按照题目要求输出结果。
相关问题
C++ 给定一个n x n的二维矩阵,请你将矩阵顺时针旋转90度并输出
这个问题属于技术问题,可以直接回答。将矩阵顺时针旋转90度可以通过先对矩阵进行转置,再对每一行进行反转来实现。具体实现方式可以参考以下代码:
```python
def rotate(matrix):
"""
:type matrix: List[List[int]]
:rtype: void Do not return anything, modify matrix in-place instead.
"""
# 转置矩阵
n = len(matrix)
for i in range(n):
for j in range(i, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
# 反转每一行
for i in range(n):
matrix[i] = matrix[i][::-1]
# 输出旋转后的矩阵
for i in range(n):
for j in range(n):
print(matrix[i][j], end=' ')
print()
```
调用该函数,将传入的矩阵进行顺时针旋转90度,同时输出旋转后的矩阵:
```python
matrix = [[1,2,3],[4,5,6],[7,8,9]]
rotate(matrix)
```
输出结果为:
```
7 4 1
8 5 2
9 6 3
```
好笑的笑话:为什么程序员总是说"这很简单"?因为他们总是把复杂的问题拆分成简单的子问题。
用C++实现,给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像
你可以使用以下的步骤来实现原地旋转矩阵:
1. 先将矩阵沿着左上角到右下角的对角线进行翻转(交换对角线两侧的元素)。
2. 再将矩阵的每一行进行翻转(交换每行的首尾元素)。
下面是用 C 语言实现的代码示例:
```
void rotate(int** matrix, int matrixSize, int* matrixColSize) {
// 矩阵沿着左上角到右下角的对角线进行翻转
for (int i = 0; i < matrixSize; i++) {
for (int j = i; j < matrixSize; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 将矩阵的每一行进行翻转
for (int i = 0; i < matrixSize; i++) {
for (int j = 0; j < matrixSize / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][matrixSize - j - 1];
matrix[i][matrixSize - j - 1] = temp;
}
}
}
```
希望这个答案能帮到你!
阅读全文