如何实现一个c语言算法,将一个数列(例如整数列表)的首尾元素互换,并按照倒序的顺序进行存储和输出?
时间: 2024-12-10 16:33:54 浏览: 13
要在C语言中实现这个功能,你可以创建一个函数,接受一个整数数组作为输入,然后通过两个指针,一个指向数组的开始,另一个指向结束,交换它们所指向的元素,然后逐步向中间移动指针,直到它们相遇。这里是一个简单的示例:
```c
#include <stdio.h>
void reverseAndSwap(int arr[], int n) {
if (n <= 1) {
// 如果只有一个元素或者没有元素,无需操作
return;
}
// 使用两个指针i 和 j 分别从头和尾开始
int i = 0; // 指向数组开头
int j = n - 1; // 指向数组结尾
while (i < j) {
// 交换首尾元素
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
// 移动指针
i++;
j--;
}
// 输出反转后的数组
for (int k = 0; k < n; k++) {
printf("%d ", arr[k]);
}
}
// 测试函数
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverseAndSwap(arr, n);
printf("\nReversed and swapped array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
当你运行这个程序,它首先会打印原始数组,然后调用`reverseAndSwap`函数将其首尾元素互换并按倒序输出。
阅读全文