7-1 利用指针返回多个函数值 分数 30 作者 陈晓梅 单位 广东外语外贸大学 读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。 输入格式: 输入有两行: 第一行是n值; 第二行是n个数。 输出格式: 输出最大值和最小值。 输入样例: 在这里给出一组输入。例如: 5 8 9 12 0 3 输出样例: 在这里给出相应的输出。例如: max = 12 min = 0
时间: 2024-03-20 11:38:54 浏览: 151
单链表的创建、遍历及删除
5星 · 资源好评率100%
实现代码如下:
```c++
#include <stdio.h>
void max_min(const int* a, int n, int* max, int* min) {
*max = *min = *a;
for (int i = 1; i < n; i++) {
if (*(a+i) > *max) {
*max = *(a+i);
}
else if (*(a+i) < *min) {
*min = *(a+i);
}
}
}
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int max, min;
max_min(a, n, &max, &min);
printf("max = %d\nmin = %d", max, min);
return 0;
}
```
该程序使用了指针来返回 `max` 和 `min` 两个值。在 `max_min()` 函数中,首先将第一个元素赋值给 `max` 和 `min`,然后遍历数组,如果当前元素大于 `max`,则将 `max` 更新为当前元素;如果当前元素小于 `min`,则将 `min` 更新为当前元素。最后返回更新后的 `max` 和 `min` 值。
在 `main()` 函数中,先读入数组,然后调用 `max_min()` 函数,将数组、数组长度、以及 `max` 和 `min` 的地址传入。最后输出 `max` 和 `min` 的值即可。
阅读全文