使用指向变量的指针变量做函数参数,编写函数求两个数的大于,小于,等于关系完整的程序
时间: 2024-03-07 22:46:42 浏览: 21
好的,以下是代码实现:
```c
#include <stdio.h>
void compare(int a, int b, int *greater, int *less, int *equal)
{
if (a > b) {
*greater = a;
*less = b;
*equal = 0;
} else if (a < b) {
*greater = b;
*less = a;
*equal = 0;
} else {
*greater = a;
*less = b;
*equal = 1;
}
}
int main()
{
int a, b;
int greater, less, equal;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
compare(a, b, &greater, &less, &equal);
if (equal)
printf("%d 等于 %d\n", a, b);
else
printf("%d 大于 %d,%d 小于 %d\n", greater, less, less, greater);
return 0;
}
```
解释一下:
- `compare` 函数有三个指向变量的指针参数 `greater`、`less` 和 `equal`,分别指向最大值、最小值和相等标志。
- 如果 `a` 大于 `b`,则将 `a` 赋值给 `greater`,`b` 赋值给 `less`,`equal` 赋值为 0。
- 如果 `a` 小于 `b`,则将 `b` 赋值给 `greater`,`a` 赋值给 `less`,`equal` 赋值为 0。
- 如果 `a` 等于 `b`,则将 `a` 赋值给 `greater`,`b` 赋值给 `less`,`equal` 赋值为 1。
- 在 `main` 函数中,先读入两个整数 `a` 和 `b`,然后调用 `compare` 函数,将 `greater`、`less` 和 `equal` 赋值为对应的值。
- 最后根据 `equal` 的值,输出相应的结果。