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);
}
当调试除1之外的每个k值时,总和显示为等于0,我是否正确实现了循环?
编辑1:
int k;
double sum;
答案 0 :(得分:7)
由于1和k都是整数 - 1 / k是 integer division ,如果k> 1,它总是为0因此,总和不会增加任何东西。您希望1 / k执行浮点除法。请尝试1.0 / k
而不是1 / k。
答案 1 :(得分:0)
1 / k会给0.因为它是整数分区。 你必须给1.0 / k或1 /(浮动)k