用c语言编写函数fun的功能是:把主函数中输入的3个数,最大的放在 a中,最小的放在c中
时间: 2024-09-10 21:29:55 浏览: 63
在C语言中,编写这样的函数需要首先在函数内部比较这三个数的大小,然后将最大和最小的值分别赋给变量a和c,中间的值赋给变量b。以下是一个可能的实现方式:
```c
#include <stdio.h>
void fun(int x, int y, int z, int *a, int *c) {
int max, min, mid;
// 比较并确定最大值和最小值
max = (x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z);
min = (x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z);
// 确定中间值
mid = (x != max && x != min) ? x : ((y != max && y != min) ? y : z);
// 将值赋给指针指向的变量
*a = max;
*c = min;
// b的值可以通过函数返回或者通过其他方式传递,这里假设b通过其他方式确定
}
int main() {
int a, b, c;
// 输入三个整数
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
// 调用函数
fun(a, b, c, &a, &c);
// 输出结果
printf("最大的数是:%d,最小的数是:%d\n", a, c);
// 假设b是中间的数,可以根据实际情况输出或处理b
return 0;
}
```
在这个例子中,函数`fun`接受三个整数参数和两个指向整数的指针作为参数。指针`a`和`c`用于存放最大和最小值。函数内部通过嵌套的条件运算符(也称为三元运算符)来确定最大值和最小值,然后将这些值赋给对应的指针指向的变量。
注意,在`main`函数中,我们没有直接传递中间值`b`给`fun`函数,因为C语言中函数参数的传递默认是值传递,如果需要修改变量的值,就需要使用指针。在这个例子中,我们只是输出了`a`和`c`的值,而`b`的值可以根据实际需要以其他方式处理。
阅读全文