谁能告诉我错在哪里,谢了
#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));这样就好了