c语言指针实现三个数找最大值
时间: 2024-03-02 09:25:34 浏览: 286
可以使用指针来实现三个数找最大值的功能,具体实现如下:
```c
#include <stdio.h>
int max(int *a, int *b, int *c) {
int max_num = *a;
if (*b > max_num) {
max_num = *b;
}
if (*c > max_num) {
max_num = *c;
}
return max_num;
}
int main() {
int a = 10, b = 20, c = 30;
int max_num = max(&a, &b, &c);
printf("Max number is: %d\n", max_num);
return 0;
}
```
在上述代码中,定义了一个 `max` 函数,它接收三个指针类型的整数变量 `a`、`b`、`c`,并返回它们三个中的最大值。在函数内部,首先将 `max_num` 初始化为 `a` 所指向的值,然后依次比较 `b` 和 `c` 所指向的值,如果它们中的任意一个比 `max_num` 大,就将 `max_num` 更新为该值。最后返回 `max_num` 即可。
在 `main` 函数中,定义了三个整数变量 `a`、`b`、`c`,并分别赋值为 `10`、`20`、`30`。然后调用 `max` 函数并将三个变量的地址作为参数传入。最后将 `max` 函数的返回值打印出来即可。
相关问题
c语言利用指针找三个值最大值
可以通过指针来实现找三个值中的最大值,具体的实现方法如下:
```c
#include<stdio.h>
int max_of_three(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, b, c;
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
int max = max_of_three(&a, &b, &c);
printf("三个数的最大值为:%d\n", max);
return 0;
}
```
在这个程序中,我们定义了一个函数`max_of_three`,它接受三个整型指针参数`a`、`b`、`c`,通过比较它们的值来找出最大值。在主函数中,我们定义了三个整型变量`a`、`b`、`c`,并通过`&`运算符取得它们在内存中的地址,然后传递给`max_of_three`函数。函数执行完毕后,返回最大值,我们在主函数中输出即可。
c语言用指针求三个数的最大值最小值和平均值
以下是使用指针求三个数的最大值、最小值和平均值的C语言代码:
```c
#include <stdio.h>
void Score(int b[], int* max, int* min, float* avg) {
int i;
*min = *max = *avg = b[0];
for (i = 1; i < 5; i++) {
if (b[i] < *min) {
*min = b[i];
}
if (b[i] > *max) {
*max = b[i];
}
*avg += b[i];
}
*avg = *avg / 5;
}
int main() {
int a[5], min, max;
float avg;
for (int i = 0; i < 5; i++) {
scanf("%d", &a[i]);
}
Score(a, &max, &min, &avg);
printf("max=%d, min=%d, avg=%.1f\n", max, min, avg);
return 0;
}
```
这段代码中,我们定义了一个名为Score的函数,该函数接受一个整型数组b、一个指向最大值的指针max、一个指向最小值的指针min和一个指向平均值的指针avg作为参数。在函数中,我们使用循环遍历整型数组b,找到其中的最大值、最小值,并计算出平均值。最后,我们将最大值、最小值和平均值分别存储到指针max、min和avg所指向的内存地址中。
在main函数中,我们定义了一个名为a的整型数组,用于存储5名学生的成绩。然后,我们使用scanf函数从标准输入中读取5个整数,并将它们存储到数组a中。接着,我们调用Score函数,将数组a和三个指针作为参数传递给它,计算出最大值、最小值和平均值,并将它们打印到标准输出中。
阅读全文