逆序,将一个含有n个元素的一维数组逆序存放,用
时间: 2025-01-04 18:39:32 浏览: 73
要将一个含有N个元素的一维数组逆序存放,你可以选择两种不同的方法:
1. **不考虑空间开销**[^2]:
```c
#include <stdio.h>
#define N 10
int main() {
int a[N], i;
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
// 使用双指针法,从两端开始交换元素
for (i = 0; i < N / 2; i++) {
int temp = a[i];
a[i] = a[N - 1];
a[N - i - 1] = temp;
}
for (i = 0; i < N; i++)
printf("%d\t", a[i]);
return 0;
}
```
2. **考虑空间开销**:
```c
#include <stdio.h>
#define N 10
int main() {
int a[N], i, t;
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
// 直接在原数组上进行交换,不需要额外的空间
for (i = 0; i < N / 2; i++) {
t = a[i];
a[i] = a[N - i - 1];
a[N - i - 1] = t;
}
for (i = 0; i < N; i++)
printf("%d\t", a[i]);
return 0;
}
```
这两个示例展示了如何在C++中逆序存储一维数组。第一个示例使用了额外的数组`b`来保存逆序的结果,而第二个示例则直接在原数组`a`上操作,避免了额外的空间开销。
阅读全文
相关推荐


















