#include <stdio.h> int main() { int max2(int m, int n); int a,b,c; printf("a,b,c=?"); scanf("%d,%d,%d",&a,&b,&c); printf("max3 is %d\n", max2( (1) ,c)); return 0; } int max2(int m,int n) { return m>n (2) ; }
时间: 2024-01-17 19:05:04 浏览: 67
#include <stdio.h>
这段代码中存在一些问题,我来帮你解决一下。
首先,我们来看一下 `max3` 函数的调用:
```c
printf("max3 is %d\n", max2( (1) ,c));
```
这里调用了 `max2` 函数,但是参数有问题。你需要将 `(1)` 替换成 `max2(a, b)`,这样才能找到三个数中的最大值。修改后的代码如下:
```c
printf("max3 is %d\n", max2(max2(a, b), c));
```
接着,我们来看一下 `max2` 函数的实现:
```c
int max2(int m, int n) {
return m > n (2) ;
}
```
这里也存在问题。你需要在 `(2)` 处添加一个 `?` 或者 `:`,来构造一个三目运算符。如果需要返回较大的数,那么返回 `m`,否则返回 `n`。修改后的代码如下:
```c
int max2(int m, int n) {
return m > n ? m : n;
}
```
最终修改后的代码如下:
```c
#include <stdio.h>
int max2(int m, int n) {
return m > n ? m : n;
}
int main() {
int a, b, c;
printf("a, b, c = ? ");
scanf("%d,%d,%d", &a, &b, &c);
printf("max3 is %d\n", max2(max2(a, b), c));
return 0;
}
```
这样就可以正确地找到三个数中的最大值了。
阅读全文