谁能告诉我错在哪里,谢了

谁能告诉我错在哪里,谢了

问题描述:

#include
#include
int fun(int n)
{
int i;
int s = 0;
for (i = 0; i >= n; ++i)
{
s += i;
}
return s;
}
int main()
{
int i,s = 0;
for (i = 0; i < 50; ++i)
{
s += double(1.0/fun(i));
}
printf("%f", s);
return 0;
}

fun()函数的for循环中应该改为 i<=n. 否则的话fun函数返回0, 0不能作为分母。

#include

int fun(int n)
{
int i,s = 0;
for (i = 0; i >= n; ++i)
{
s += i;
}
return s;
}

int main()
{
int i, s = 0;
for (i = 0; i < 50; ++i)
{
s += double(1.0/fun(i));
}
printf("%f", s);
return 0;
}

图片说明
最后一个标点打错了,还有就是头文件没打全,改成上面这样就可以使用了

最后printf那边试试%lf,因为上面有double类型的。

怎么才嫩有几分啊!!!

#include

int fun(int n)
{
int i;
int s = 0;
for (i = 0; i <= n; ++i)
{
s += i;
}
return s;
}
int main()
{
int i = 0;
double s = 0;
for (i = 1; i < 50; ++i)
{
s += double(1.0/fun(i));
}
printf("%f", s);
return ;
}

s+=(double)(1.0/fun(i));
此处应该需要给double加上括号

控制台说明double转int时异常,
double(1.0/fun(i));在这里,所以说直接去掉double为
s+=(1.0/fun(i));这样就好了