题目: 请编写函数 double fun(int n), 它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后, 调用fun并得到返回值,在main函数中输出为: s=0.583333。注意: 要求n的值不大于100。
#include <stdio.h>
#include<math.h>
double fun(int n)
{
int k;double sum=0.0;
for(k=1;k<=n;k++)
if(k%5==0||k%9==0)
sum+=1/k;
return sum;
}
int main()
{
int n ;
double s;
printf(" input n:\n");
scanf("%d",&n);
printf("s=%f\n",fun(n));
}
输出总是错的
你的程序中,要把sum+=1/k; 改为:
sum+=1.0/k;
否则:因为k是整型的,1/k的值始终为0。
修改后的程序如下:
#include <stdio.h>
#include<math.h>
double fun(int n)
{
int k;double sum=0.0;
for(k=1;k<=n;k++)
if(k%5==0||k%9==0)
sum+=1.0/k;
return sum;
}
int main()
{
int n ;
double s;
printf(" input n:\n");
scanf("%d",&n);
printf("s=%f\n",fun(n));
}
程序的运行结果如下:
一周热门 更多>