形参a所指数组中的前半部分元秦中的值与后半部分元素中的值对换。形参中存放数组中数据的个数,若n为奇数,则中间的元素不动。 输入输出要求:第一行输入元素个数,第二行输入每个元素值,第三行输出交换的值。
时间: 2023-11-27 17:50:08 浏览: 66
以下是一个实现该功能的C++代码示例:
```
#include <iostream>
using namespace std;
void swapArray(int a[], int n) {
int temp;
int mid = n / 2;
for (int i = 0; i < mid; i++) {
temp = a[i];
a[i] = a[mid + i + n % 2];
a[mid + i + n % 2] = temp;
}
}
int main() {
int n;
cout << "请输入元素个数:";
cin >> n;
int a[n];
cout << "请输入每个元素值:";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
swapArray(a, n);
cout << "交换后的值为:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
代码思路:
1. 定义一个函数 `swapArray`,其形参为一个整型数组和数组中元素的个数。
2. 首先计算出数组中间的位置 `mid`。
3. 然后遍历前半部分元素,将其与后半部分对应位置的元素进行交换,交换次数为前半部分元素个数的一半。
4. 如果数组长度为奇数,则中间的元素不需要交换,直接跳过即可。
5. 在主函数中,先读入数组元素的个数和值,然后调用 `swapArray` 函数进行交换,并输出交换后的结果。
注意:该代码中使用了可变长度数组,需要使用支持该特性的编译器。如果不支持可变长度数组,可以使用动态内存分配或者固定长度数组。
阅读全文