C for/while循环不求和

Fle*_*515 1 c for-loop sum while-loop

for (i = 0; i < n; i++)
    {
        x[i] = (float) (i * step);
        k = 5;
        sum = 0;
        while(k > 0)
        {
            sum = sum + (1/k) * sin((k*PI*x[i])/5);
            k = k - 2;
        }
        y1[i] = (4/PI)*sum;

        y2[i] = 0*(4/PI)*sin((PI*x[i])/5);
    }
Run Code Online (Sandbox Code Playgroud)

当调试除1之外的每个k值时,总和显示为等于0,我是否正确实现了循环?

编辑1:

int k;
double sum;
Run Code Online (Sandbox Code Playgroud)

Dou*_* T. 7

由于1和k都是整数 - 1/k是整数除法,如果k> 1,它总是为0.因此,总和不会添加任何内容.您希望1/k执行浮点除法.尝试1.0 / k而不是1/k.