存在的一个问题就是你定义的i是int型,所以1/int也是整数int型,所以每次的1/i的结果都是0,最后总和也就为零了。你改成1.0/i,或者1/float(i),这样,就可以了。
#include
double fun(int n)
{
double a=0;
int i;
for(i=1;i<=n;i++)
if(i%5==0||i%9==0)
a+=1.0/i;
return a;
}
void main()
{
double s;
int n;
printf("输入一个数n:\n");
scanf("%d",&n);
s=fun(n);
printf("%f",s);
}
是这个地方的问题哦~~
a+=1/i;
因为你的 i 是 int 型的,所以 1/i 的值就成 0 了,
a 的值就一直都是 0 ,
你可以改成
a+=1.0/i;
就可以了~~
#include
double fun(int n)
{
double a=0;
int i;
for(i=1;i<=n;i++)
{
if(i%5==0 || i%9==0)
a=a+ 1.00/i;
}
return a;
}
void main()
{
double s=0;
int n;
printf("输入一个数n:\n");
scanf("%d",&n);
s=fun(n);
printf("%f",s);
}
a+=1/i这个地方有误,1/i得到的是一直都是0
貌似fun函数没有返回值....把fun(int n)改为 double fun(int n)
a+=1/i;你这句有点问题