c++二维数组reverse
时间: 2024-08-23 12:02:29 浏览: 45
在 C++ 中,如果你想要反转一个二维数组(即矩阵),你可以创建一个辅助函数来实现这一操作。二维数组实际上是数组的数组,所以你需要遍历每一行然后再反转每一行。这里是一个简单的例子:
```cpp
#include <iostream>
// 辅助函数,用于反转一个一维数组
void reverseArray(int arr[], int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
// 函数用于反转二维数组的所有行
void reverseRows(int matrix[][size], int rows) {
for (int i = 0; i < rows / 2; i++) {
reverseArray(matrix[i], 0, size - 1); // 反转当前行
if (rows % 2 != 0 && i == rows / 2) break; // 如果行数为奇数,中间那一行不需要反转
}
}
int main() {
int matrix[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
int rows = sizeof(matrix) / sizeof(matrix[0]);
std::cout << "Original Matrix:\n";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < size; j++) {
std::cout << matrix[i][j] << ' ';
}
std::cout << '\n';
}
reverseRows(matrix, rows);
std::cout << "Reversed Matrix:\n";
for (int i = 0; i < rows; i++) {
for (int j = 0; j < size; j++) {
std::cout << matrix[i][j] << ' ';
}
std::cout << '\n';
}
return 0;
}
```
在这个示例中,`reverseRows`函数接受一个二维数组和行数作为输入,然后逐行调用`reverseArray`。注意这个代码假设你的二维数组是正方形的,如果矩阵的列数不是固定的,你可能需要修改`reverseArray`的部分。