用类C语言描述将一个大小为n(非负整数)的整型数组各元素逆置的算法
时间: 2024-09-15 15:12:39 浏览: 82
在C语言中,反转一个大小为n的整型数组可以使用两种常见的方法:使用数组下标交换或双指针法。这里提供两种简单的算法:
**方法一:使用数组下标交换(遍历法)**
```c
#include <stdio.h>
void reverseArray(int arr[], int n) {
int start = 0;
int end = n - 1; // 开始和结束指针
while (start < end) { // 当开始指针小于结束指针时继续交换
int temp = arr[start]; // 临时存储开始位置的元素
arr[start] = arr[end];
arr[end] = temp; // 将结束位置的元素移动到开始位置,然后开始位置的元素移到结束位置
start++; // 向数组内部移动开始指针
end--; // 向数组外部移动结束指针
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
reverseArray(arr, size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // 打印逆序后的数组
}
return 0;
}
```
**方法二:双指针法**
```c
#include <stdio.h>
void reverseArray(int arr[], int n) {
int left = 0; // 左指针
int right = n - 1; // 右指针
while (left < right) { // 当左指针小于右指针时交换
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
// ...其他代码同上...
```
这两个函数分别从数组的两端向中间进行交换,直到两个指针相遇。
阅读全文