逆序(函数),将一个含有n个元素的一维数组逆序存放,用
时间: 2025-01-04 16:39:33 浏览: 8
在C/C++中,你可以通过以下方式来实现一维数组的逆序:
1. **C语言逆序数组(一维)**
```c
// 定义一个函数来逆序一维数组
void reverseArray(int arr[], int n) {
int start = 0;
int end = n - 1;
while (start < end) {
// 交换arr[start]和arr[end]的值
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
// 调用逆序函数示例
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}[^2]
```
2. **C++逆序二维数组(二维数组的每一行逆序)**
对于二维数组的逆序操作通常针对每一行,因为直接逆序整个数组会改变存储结构[^1]。假设`reverseRow`函数可以逆序一行,你可以这样做:
```cpp
// 假设reverseRow已存在
void reverseMatrix(int M[N][N]) {
for (int i = 0; i < N; ++i) {
reverseRow(M[i], N); // 对第i行调用reverseRow函数
}
}
```
对于题目提到的C++中二维数组逆向存放,可能是指每一行的逆序,而不是整个矩阵的逆序。如果需要整个二维数组逆序,你需要先逆序每个元素,这通常是不推荐的,因为这会破坏原有的内存布局。
阅读全文