c语言 将一个数组中的值按逆序重新存放。
时间: 2024-06-13 08:08:42 浏览: 149
以下是C语言将一个数组中的值按逆序重新存放的代码实现:
```c
#include <stdio.h>
void reverse(int arr[], int len) {
int temp;
for (int i = 0; i < len / 2; i++) {
temp = arr[i];
arr[i] = arr[len - i - 1];
arr[len - i - 1 = temp;
}
}
int main() {
int arr[] = {8, 6, 5, 4, 1};
int len = sizeof(arr) / sizeof(arr[0]);
reverse(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行结果为:1 4 5 6 8
相关问题
C语言将一个数组中的值逆序重新存放
在C语言中,你可以使用两个指针,一个指向数组的开始,另一个指向结束,然后通过循环逐个交换它们指向的元素直到相遇。这是最基础的数组逆序操作,以下是简单的步骤:
1. 初始化两个指针,`start` 指向数组的第一个元素,`end` 指向数组的最后一个元素。
2. 当 `start < end` 时,执行以下操作:
a. 交换 `array[start]` 和 `array[end]` 的值。
b. 将 `start` 向右移动一位 (`start++`),`end` 向左移动一位 (`end--`)。
3. 循环结束后,数组就被逆序了。
这里是一个示例函数来完成这个任务:
```c
void reverse_array(int array[], int size) {
int start = 0;
int end = size - 1;
while (start < end) {
int temp = array[start]; // 临时存储第一个元素
array[start] = array[end]; // 第一个元素放到最后
array[end] = temp; // 最后一个元素放到第一个位置
start++; // 移动到下一个
end--; // 移动到上一个
}
}
```
c语言将一个数组中的值逆序重新存放
在C语言中,要将数组元素逆序排列,可以采用两种常见的方法:直接遍历和递归。
**1. 直接遍历法(两指针法)**
```c
void reverse_array(int arr[], int start, int end) {
if (start < end) {
// 交换arr[start]和arr[end]
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 继续处理剩余部分
reverse_array(arr, start + 1, end - 1);
}
}
// 使用示例
int main() {
int my_array[5] = {1, 2, 3, 4, 5};
int length = sizeof(my_array) / sizeof(my_array[0]);
reverse_array(my_array, 0, length - 1);
// 输出逆序后的数组
for (int i = 0; i < length; i++) {
printf("%d ", my_array[i]);
}
return 0;
}
```
**2. 递归法**
```c
void reverse_array_recursively(int arr[], int start, int end) {
if (start >= end) {
return;
}
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
reverse_array_recursively(arr, start + 1, end - 1);
}
// 使用示例同上
```
运行上述代码后,原数组`my_array`的内容将会变为倒序。
阅读全文