用指针函数实现从三个数中,输出最大值
时间: 2023-11-22 21:53:17 浏览: 151
可以使用指针函数来实现从三个数中输出最大值。以下是一个示例代码:
```c
#include <stdio.h>
int *max(int *a, int *b, int *c) {
int *max = a;
if (*b > *max) {
max = b;
}
if (*c > *max) {
max = c;
}
return max;
}
int main() {
int a = 10, b = 20, c = 30;
int *pmax = max(&a, &b, &c);
printf("Max value: %d\n", *pmax);
return 0;
}
```
在这个代码中,`max` 函数接收三个 `int` 类型的指针参数,分别指向三个数的内存地址。函数内部通过比较这三个数的大小,找出最大值,并将其对应的指针返回。在 `main` 函数中,我们调用 `max` 函数来获取最大值的指针,并通过 `*` 运算符获得最大值本身。
相关问题
用函数的指针实现从三个数中,输出最大值
可以使用以下代码实现:
```c
#include <stdio.h>
int getMax(int a, int b, int c) {
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
return max;
}
void printMax(int (*getMax)(int, int, int), int a, int b, int c) {
int max = getMax(a, b, c);
printf("最大值为:%d\n", max);
}
int main() {
int a = 10, b = 20, c = 30;
printMax(getMax, a, b, c);
return 0;
}
```
这里定义了一个名为 `getMax` 的函数,它接受三个整数参数,并返回其中的最大值。然后定义了另一个名为 `printMax` 的函数,它接受一个函数指针和三个整数参数,调用这个函数指针指向的函数,并将结果打印出来。
在 `main` 函数中,我们定义了三个整数变量 `a`, `b`, `c`,并将它们的值分别设为 10、20 和 30。然后我们调用 `printMax` 函数,将 `getMax` 函数的指针作为参数传递给它,再将 `a`, `b`, `c` 三个变量也作为参数传递给它。
当程序运行时,`printMax` 函数会调用 `getMax` 函数,得到三个数中的最大值,然后将这个最大值打印出来。在本例中,最大值为 30。
利用指针实现得到三个数中的最大值和最小值
可以使用指针作为函数参数,通过指针访问传入的三个数,并在函数中比较得到最大值和最小值。以下是示例代码:
```c
#include <stdio.h>
void findMinAndMax(int *a, int *b, int *c, int *min, int *max) {
*min = *a;
*max = *a;
if (*b < *min) {
*min = *b;
}
if (*c < *min) {
*min = *c;
}
if (*b > *max) {
*max = *b;
}
if (*c > *max) {
*max = *c;
}
}
int main() {
int a = 10, b = 5, c = 7;
int min, max;
findMinAndMax(&a, &b, &c, &min, &max);
printf("Min: %d, Max: %d\n", min, max);
return 0;
}
```
在上面的代码中,`findMinAndMax`函数接受三个指针类型的参数 `a`, `b`, `c`,以及两个指针类型的输出参数 `min`, `max`。在函数内部,使用指针访问传入的三个数,比较得到最大值和最小值,并通过指针修改输出参数 `min`, `max` 的值。在 `main` 函数中,需要将变量 `a`, `b`, `c` 的地址作为参数传入 `findMinAndMax` 函数中。
阅读全文