编写一个函数void transfer(int* p),输入的一维数组a中的6个元素的最大值与最后一个元素值作交换。
时间: 2023-11-28 09:05:20 浏览: 38
好的,这是一个将一维数组中最大值与最后一个元素进行交换的函数实现:
```c++
#include <iostream>
void transfer(int* p)
{
int max = p[0];
int maxIndex = 0;
// 找到最大值及其索引
for (int i = 1; i < 6; i++)
{
if (p[i] > max)
{
max = p[i];
maxIndex = i;
}
}
// 将最大值与最后一个元素进行交换
int temp = p[maxIndex];
p[maxIndex] = p[5];
p[5] = temp;
}
int main()
{
int a[6] = {1, 2, 3, 4, 5, 6};
std::cout << "交换前的数组:";
for (int i = 0; i < 6; i++)
{
std::cout << a[i] << " ";
}
std::cout << std::endl;
transfer(a);
std::cout << "交换后的数组:";
for (int i = 0; i < 6; i++)
{
std::cout << a[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
这个函数中,我们首先找到数组中的最大值及其索引,然后将最大值与最后一个元素进行交换。在 `main` 函数中,我们创建了一个测试数组 `a`,并调用 `transfer` 函数进行交换操作。最后,打印出交换前后的数组内容。