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

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

This question already has answers here:
Why does division result in zero instead of a decimal?
                                
                                    (5个答案)
                                
                        
                                在8个月前关闭。
            
                    
我在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/

10-13 04:41