如何有效地将一个数组的元素顺序反转后存储到另一个数组中?c语言
时间: 2024-10-25 10:13:57 浏览: 22
在C语言中,有效地将数组元素顺序反转并存入另一个数组可以采用循环遍历和临时变量的方法。以下是一个简单的步骤:
1. 创建一个新的数组,其长度应与原数组相同。
2. 使用两个指针,一个指向原数组的起始位置(i=0),另一个指向新数组的末尾(j=n-1,n为数组长度)。
3. 依次将原数组的元素从`arr[i]`复制到新数组的`new_arr[j]`,同时移动指针:`new_arr[j] = arr[i];`
4. 指针向中间靠拢,直到相遇:`i++` 和 `j--`。
5. 当`i`大于等于`j`时,所有元素已复制完毕,数组反转完成。
这里有一个简单的示例代码片段:
```c
#include <stdio.h>
void reverse_array(int arr[], int size, int new_arr[]) {
int i = 0;
int j = size - 1;
while (i < j) {
// 交换arr[i]和new_arr[j]
new_arr[i] = arr[j];
new_arr[j] = arr[i]; // 可以先暂存到第三个变量再交换
i++;
j--;
}
}
int main() {
int original[] = {1, 2, 3, 4, 5};
int len = sizeof(original) / sizeof(original[0]);
int reversed[len];
reverse_array(original, len, reversed);
for (int k = 0; k < len; k++) {
printf("%d ", reversed[k]);
}
return 0;
}
```
运行此程序,会看到原始数组元素按相反顺序打印出来。
阅读全文