兄弟看一下这个程序,我觉得逻辑应该没问题,但是输出的时候,结果是0.00000000

double s()
{
double n = 1;
double sum = 0;
while (1.0/(n*n) <= 1e-6)
{
sum = sum + (1.0 / (n * n));
n++;

}
return sum;

}
void main()
{

double y;

y = s();
printf("%lf\n", y);

}

while (1.0/(n*n) <= 1e-6) 循环条件不正确,应该改为:while (1.0 / (n * n) >= 1e-6)

while (1.0/(n*n) <= 1e-6)这个都不成立

while那里改成>=

条件不成立,不会循环,直接返回double sum。