给定一个整数数组,数组长度为2n,要求你编写一个函数,将数组中的前n个元素和后n个元素交换。用c语言
时间: 2024-10-05 17:03:00 浏览: 129
在C语言中,你可以使用两个指针分别指向数组的起始和结尾,然后交换它们所指向的元素,直到其中一个指针超过另一个为止。下面是一个简单的函数实现这个功能:
```c
#include <stdio.h>
// 定义函数,交换数组前后两半元素
void swapArrayHalf(int arr[], int n) {
if (arr && n > 0) { // 检查数组和元素数量是否有效
int start = 0; // 指向数组开始
int end = n - 1; // 指向数组结束
while (start < end) { // 当起始指针小于结束指针时继续交换
// 交换arr[start] 和 arr[end]
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
}
// 测试函数
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[4] = {1, 2, 3, 4}; // 示例数组,长度为4
int n = sizeof(arr) / sizeof(arr[0]) / 2; // 计算数组实际长度的一半
printf("Original array: ");
printArray(arr, n * 2); // 打印原始数组
swapArrayHalf(arr, n); // 交换前后一半
printf("After swapping: ");
printArray(arr, n * 2);
return 0;
}
```
当你运行上面的代码,会看到原数组的前半部分和后半部分互换的结果。
阅读全文