在线编译器 C

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

代码整体逻辑正确,但有一个潜在问题需要注意:

- 变量 `A` 被声明为 `float` 类型,但平均值计算中使用了 `3.0` 来确保浮点除法,这是正确的做法。

- 问题在于:如果输入的数字很大,三个整数的和可能超出 `int` 类型的范围(通常最大约21亿),导致溢出错误。例如输入 `1000000000 1000000000 1000000000` 时,和会超过 `int` 上限,结果出错。

- 提示:考虑如何避免整数相加时可能发生的溢出。