Online Compiler C

#include <stdio.h> int main() { int a, b, c; float ave; scanf("%d%d%d", &a, &b, &c); ave = (a + b + c)/3.0; printf("%.2f\n", ave); return 0; }
这段代码的功能是:从键盘读取三个整数,计算它们的平均值,并保留两位小数输出。

- 代码中 `(a + b + c)/3.0` 使用了浮点数除法,这是正确的做法,因为除数是 `3.0` 而不是 `3`。
- 但变量 `ave` 被声明为 `float` 类型,而 `printf` 中使用了 `%.2f` 来输出,这本身没有问题。不过需要注意,`float` 类型在计算中可能会损失精度,通常建议使用 `double` 类型来存储浮点数结果。

- 提示1:考虑将 `float ave` 改为 `double ave`,并在 `scanf` 和 `printf` 中使用对应的格式说明符 `%lf` 和 `%.2f`(注意 `printf` 中 `double` 仍用 `%f`,但 `scanf` 中必须用 `%lf`)。
- 提示2:检查输入格式,确保用户输入三个整数时用空格或换行分隔,代码中 `scanf` 的格式字符串 `"%d%d%d"` 可以正确读取,但建议添加空格或逗号等分隔符提示用户,例如 `scanf("%d %d %d", &a, &b, &c);`。