用C语言将一个数组中的值按逆序重新存放,例如:原来顺序是8,5,3,2,要求改为2,3,5,8。数组长度自定义。
时间: 2024-11-25 19:08:37 浏览: 16
在C语言中,你可以通过两个指针,一个指向数组的开始,另一个指向数组的结束,然后交换这两个指针所指向的元素,每次移动一位,直到两个指针相遇。这是一个简单的冒泡排序的思想,但是因为目标是逆序,所以实际上是倒序遍历。
以下是一个示例函数,它接受一个整数数组`arr`、数组长度`n`以及起始索引`start`作为参数,会按照逆序对数组进行修改:
```c
#include <stdio.h>
// 交换两个整数的函数
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 逆序数组部分的功能
void reverse_array(int arr[], int n, int start) {
if (start >= n - 1) return; // 如果已经到达数组末尾,提前返回
swap(&arr[start], &arr[n - 1]); // 交换首尾元素
reverse_array(arr, n, start + 1); // 继续递归处理剩余部分
}
int main() {
int arr[] = {8, 5, 3, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int start = 0;
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverse_array(arr, n, start);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
当你运行这个程序,输入数组将会变成期望的逆序。
阅读全文