c - 复代数表达式的值保持为零
问题描述
我在 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;
}
推荐阅读
- docker - Airflow how to mount airflow.cfg in docker container
- python - Time difference in microseconds not working as expected
- amazon-web-services - Route 53 地理 DNS 的工作原理是什么?
- javascript - 引用变量被视为未使用和未定义。为什么?
- ruby - Rspec 显示未定义的方法,但对象在同一块中可用
- hashmap - HashMap return the lasted record if it has multiple records with the same key, but different value
- javascript - script triggers owner case when triggerd by editor
- javascript - Move existing DIV to dynamically created iFrame no jQuery
- swift - I get this error " Use of unresolved identifier 'countElement'". I am new to swift, so I cant figure whats wrong
- python-3.x - rasa-core 操作仅返回空数组