Online Compiler C

#include <stdio.h> int main() { long long num,average=0,sum=0,i=0; scanf("%lld",&num); while (num!='.'){ sum=sum+num; i++; } average=sum/i; printf("%lld",average); return 0; }
这段代码试图从输入中读取整数并计算平均值,但存在几个关键问题。

- 代码中 `while (num!='.')` 的条件判断错误。`num` 是 `long long` 类型,不能与字符 `'.'` 比较。而且 `scanf` 只读取了一次输入,循环会无限执行,因为 `num` 的值永远不会改变。
- 循环内部没有更新 `num` 的值,也没有读取新的输入,导致 `sum` 不断累加同一个数,`i` 不断增加,最终可能溢出或死循环。
- 输入结束条件没有正确实现。通常需要读取多个数字直到遇到特定结束标志(如文件结束或特定值),但这里只读取了一个数字。

- 检查循环条件:你需要一个能正确判断输入结束的方式,比如读取到文件末尾或特定终止值。
- 确保每次循环都读取新的输入:在循环内部应该再次调用 `scanf` 来获取下一个数字。