复数代数表达式的值保持为零

时间:2019-07-05 16:38:56

标签: c gcc

我在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编译器。

1 个答案:

答案 0 :(得分:1)

解决方案是:

#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;
}