Online Compiler C

//m² + (m+1)² + ... + n² #include <stdio.h> int main() { int m, n, sum; // sum保存每次循环经历数的平方 scanf("%d %d", &m, &n); for (int i = m; i <= n; i++) // i=每次循环经历的数// (n-m+1)次循环 { sum += i * i; } printf("%d\n", sum); return 0; }
这段代码的目的是计算从 m 到 n 之间所有整数的平方和,即 m² + (m+1)² + ... + n²。代码使用了 for 循环遍历每个数并累加其平方,但存在一个关键问题。

- 变量 sum 没有初始化。在 C 语言中,局部变量不会自动赋值为 0,它的初始值是不确定的。如果 sum 的初始值是一个随机数,那么累加结果就会出错。你需要在循环开始前将 sum 设置为 0。

- 另外,代码中 sum 的注释说“保存每次循环经历数的平方”,这个描述不准确。实际上 sum 保存的是累加的结果,而不是单个数的平方。理解变量的实际作用有助于避免逻辑错误。