用c语言编写函数实现void fun(int a,int b ,int *pmax,int *pmin,float *pav) ,求出a,b的最大值和最小值、平均值通过指针返回;
时间: 2023-08-16 22:05:45 浏览: 163
下面是实现该函数的代码:
```c
void fun(int a, int b, int *pmax, int *pmin, float *pav)
{
*pmax = (a > b) ? a : b; // 求最大值
*pmin = (a < b) ? a : b; // 求最小值
*pav = (a + b) / 2.0f; // 求平均值
}
```
该函数接受三个输入参数:整数a和b,以及三个指针变量pmax、pmin和pav。
该函数通过指针返回a和b的最大值和最小值,分别存储在*pmax和*pmin中。
该函数还通过指针返回a和b的平均值,存储在*pav中。
使用该函数的示例代码如下:
```c
int main()
{
int a = 10, b = 20;
int max, min;
float avg;
fun(a, b, &max, &min, &avg);
printf("a = %d, b = %d\n", a, b);
printf("max = %d, min = %d, avg = %f\n", max, min, avg);
return 0;
}
```
输出结果为:
```
a = 10, b = 20
max = 20, min = 10, avg = 15.000000
```
相关问题
用c语言编程输入两个整数,按大小顺序输出。要求在主函数中完成整数的输入输出,在函数void cmp (int*pmax,int*pmin)中实现两个整数的比较和交换
好的,我可以帮你解决这个问题。下面是代码实现:
```c
#include <stdio.h>
void cmp(int *pmax, int *pmin);
int main()
{
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
cmp(&a, &b);
printf("从小到大排序后的结果为:%d %d\n", a, b);
return 0;
}
void cmp(int *pmax, int *pmin)
{
if (*pmax < *pmin)
{
int temp = *pmax;
*pmax = *pmin;
*pmin = temp;
}
}
```
在主函数中,我们先输入两个整数,然后调用cmp函数进行比较和交换。在cmp函数中,我们使用指针来交换两个整数的值,如果*pmax比*pmin小,就交换它们的值。最后在主函数中输出排序后的结果。
希望对你有帮助!
求一组数中的最大值、最小值及总和。要求定义函数 int f(int a[],int n,int *pmax,int *pmin) 函数返回总和,并分别通过指针pmax 和 pmin将最大值、最小值赋值给主函数中的对应变量。C语言
好的,以下是实现代码:
```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` 的指针,然后输出最大值、最小值和总和。
阅读全文