编写一个函数void transfer(int* p),输入的一维数组a中的6个元素的最大值与最
时间: 2023-11-29 20:02:12 浏览: 68
编写一个函数void transfer(int* p),输入的一维数组a中的6个元素的最大值与最小值。实现方式如下:
```c
#include <stdio.h>
void transfer(int* p) {
int max = *p;
int min = *p;
for (int i = 1; i < 6; i++) {
if (*(p + i) > max) {
max = *(p + i);
}
if (*(p + i) < min) {
min = *(p + i);
}
}
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
}
int main() {
int a[6] = {1, 5, 3, 9, 2, 8};
transfer(a);
return 0;
}
```
在transfer函数中,先通过指针p获取数组a的首地址,然后使用循环遍历数组a中的所有元素,分别比较每个元素与当前的最大值和最小值,更新max和min的值。最后在transfer函数中打印输出最大值和最小值。
在main函数中定义了一个包含6个元素的整型数组a,并将其作为参数传递给transfer函数。最后运行输出最大值和最小值。
通过以上程序,实现了获取一维数组中的最大值和最小值的功能。
相关问题
编写一个函数void transfer(int* p),输入的一维数组a中的6个元素的最大值与最后一个元素值作交换。
好的,这是一个将一维数组中最大值与最后一个元素进行交换的函数实现:
```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` 函数进行交换操作。最后,打印出交换前后的数组内容。
阅读全文