C语言将一个数组中的值按逆序重新存放
时间: 2024-05-05 19:19:08 浏览: 116
可以使用如下代码实现:
```c
void reverseArray(int arr[], int size) {
int i, temp;
for (i = 0; i < size / 2; i++) { // 注意循环次数
temp = arr[i];
arr[i] = arr[size - i - 1];
arr[size - i - 1] = temp;
}
}
```
其中,arr 表示需要逆序的数组,size 表示数组的长度,函数里的 for 循环将数组中前一半和后一半的元素逐个交换,实现逆序。
希望能对你有所帮助!
相关问题
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`的内容将会变为倒序。
阅读全文