求一组数中的最大值、最小值及总和。要求定义函数 int f(int a[],int n,int *pmax,int *pmin) 函数返回总和,并分别通过指针pmax 和 pmin将最大值、最小值赋值给主函数中的对应变量。C语言
时间: 2023-08-15 17:05:51 浏览: 200
好的,以下是实现代码:
```c
#include <stdio.h>
int f(int a[], int n, int *pmax, int *pmin) {
int sum = 0;
*pmax = a[0];
*pmin = a[0];
for (int i = 0; i < n; i++) {
sum += a[i];
if (a[i] > *pmax) {
*pmax = a[i];
}
if (a[i] < *pmin) {
*pmin = a[i];
}
}
return sum;
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = 5;
int max, min;
int sum = f(a, n, &max, &min);
printf("最大值为:%d\n", max);
printf("最小值为:%d\n", min);
printf("总和为:%d\n", sum);
return 0;
}
```
这里定义了一个函数 `f`,接收一个整型数组 `a`、数组长度 `n`,以及两个指向整型变量的指针 `pmax` 和 `pmin`。函数返回数组中所有元素的总和,并将最大值和最小值通过指针赋值给主函数中的变量 `max` 和 `min`。
在主函数中,我们传递数组 `a`、数组长度 `n`、以及指向 `max` 和 `min` 的指针,然后输出最大值、最小值和总和。
阅读全文