📅  最后修改于: 2023-12-03 15:14:04.823000             🧑  作者: Mango
本程序通过顺时针方向将第i行精确旋转i次来修改矩阵。以下是实现此功能的C++代码片段:
#include <iostream>
#include <vector>
// 函数声明
void rotateRow(std::vector<std::vector<int>>& matrix, int i);
int main() {
// 创建一个3x3矩阵作为示例
std::vector<std::vector<int>> matrix = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
// 旋转第1行
rotateRow(matrix, 0);
// 打印旋转后的矩阵
for (const auto& row : matrix) {
for (int num : row) {
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
// 顺时针旋转矩阵第i行i次
void rotateRow(std::vector<std::vector<int>>& matrix, int i) {
int numRotations = i % matrix[i].size(); // 计算需要旋转的次数
for (int rotation = 0; rotation < numRotations; rotation++) {
int lastElement = matrix[i].back(); // 取出最后一个元素
matrix[i].pop_back(); // 移除最后一个元素
matrix[i].insert(matrix[i].begin(), lastElement); // 将最后一个元素插入到第一个位置
}
}
此程序可以根据给定的矩阵和行索引,在顺时针方向上精确旋转该行指定次数。您可以根据需要修改矩阵大小和行索引,以及调整旋转次数。希望这对您有所帮助!