★C语言 求小于等于n且能被5或9整除的自然数的倒数和

2024-12-29 11:36:28
推荐回答(5个)
回答1:

存在的一个问题就是你定义的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);
}

回答2:

是这个地方的问题哦~~
a+=1/i;
因为你的 i 是 int 型的,所以 1/i 的值就成 0 了,
a 的值就一直都是 0 ,
你可以改成
a+=1.0/i;
就可以了~~

回答3:

#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

回答4:

貌似fun函数没有返回值....把fun(int n)改为 double fun(int n)

回答5:

a+=1/i;你这句有点问题