我用 C 语言编写了这段代码,由于某种原因,它始终输出零,而不是正确处理数字。 有人可以解释一下这里发生了什么事吗?我懂 C#,但不懂 C。
#include <stdio.h>
int main(void) {
// I want to express 1/6n*(n + 1)(2n + 1)
int n = 1;
while(n != 0){
scanf("%d", &n);
printf("%d", 1/6 * n * (n + 1) * (2 * n + 1));
}
return 0;
}
提前致谢!
我正在使用 Code::Blocks + GCC 编译器。
最佳答案
解决办法是:
#include <stdio.h>
int main(void) {
int n = 1;
while(n != 0){
scanf("%d", &n);
printf("%d", n * (n + 1) * (2 * n + 1) / 6);
}
return 0;
}
关于c - 复代数表达式的值保持为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56906643/