Онлайн компилятор C

#include <stdio.h> int main() { int n; scanf("%d",&n); int sum=0; for(int i=1;i<n;i+=0.1){ sum+=i*i; } printf("%d",sum); }
这段代码试图计算从1到n之间所有整数的平方和,但存在一个关键问题。

循环条件 `i+=0.1` 中,`i` 是 `int` 类型,自增0.1会导致结果被截断为整数,实际上 `i` 永远不会增加,陷入死循环。

- 检查循环变量 `i` 的数据类型和步长。整数变量不能正确累加小数。
- 思考如何用整数步长遍历从1到n的所有整数。