编写程序将整数数组a的元素按照相反的顺序存放,函数的头部为void invert(int*x,int n)
时间: 2024-12-21 10:22:53 浏览: 6
当你想要编写一个函数`invert`,它接受一个整数数组`a`的地址`int*x`和数组的大小`n`,并按相反的顺序重新排列这些元素时,你可以使用C++中的两个循环结构来完成这个任务。这里是一个简单的实现方法:
```cpp
#include <iostream>
// 函数声明
void invert(int* x, int n);
// 主函数(示例)
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(a[0]);
// 打印原始数组
std::cout << "Original array: ";
for (int i = 0; i < n; ++i) {
std::cout << a[i] << " ";
}
// 反转数组
invert(a, n);
// 打印反转后的数组
std::cout << "\nReversed array: ";
for (int i = 0; i < n; ++i) {
std::cout << a[i] << " ";
}
return 0;
}
// 实现函数invert
void invert(int* x, int n) {
// 使用两指针法,一个从开始,一个从结束
int start = 0, end = n - 1;
while (start < end) {
// 交换元素
int temp = x[start];
x[start] = x[end];
x[end] = temp;
// 移动指针
start++;
end--;
}
}
```
在这个例子中,`invert`函数通过交换数组两端的元素来进行反转。当`start`小于`end`时,不断进行这种交换直到两者相遇。
如果你需要帮助或有其他疑问,请告诉我。
阅读全文