Online Compiler C

#include <stdio.h> int main() { int a, b, c,i; scanf("%d %d %d", &a, &b,&c); max(a,b); max(b,c); max(a,c); printf("%d",a) return 0; } int max(int i,int j){ int m; if (i<j){ m=i; i=j; j=m;} return i }
这段代码试图找出三个整数中的最大值,但存在几个问题。程序先读取三个数,然后多次调用一个 `max` 函数,最后打印 `a`。

- 你定义了一个 `max` 函数,但函数内部交换了参数的值,这不会影响主函数中的变量 `a`、`b`、`c`,因为参数是按值传递的。你需要思考如何让函数返回最大值,并正确使用返回值。
- 主函数中调用了 `max` 但没有使用它的返回值,而且最后直接打印 `a`,这不会得到正确结果。你需要将 `max` 的返回值赋给某个变量,或者直接用于比较。
- 注意代码末尾缺少分号,`printf` 语句后需要加分号,`max` 函数定义末尾的 `return i` 后也缺少分号。