C语言1/1+1/2+1/3...+1/n,求和

#include<stdio.h>
int main()
{
double n,i,s=0;
scanf("%f",&n);
for(i=1; i<=n ;i++)
{
s=s+1/i;
}
printf("%f\n",s);
return 0;
}
这样写对么

1、首先初始化代码段:int i,s1=0,s2=0,s3=0;。

2、使用for语句实现:代码段:for(i=1;i<=10;i++)//for语句部分{s1+=i;}printf("s1=%d\n",s1);。

3、使用while语句实现:代码段。

4、接着使用do..while语句实现。

5、最后运行结果:S1=55;S2=55;S3=55;结果运行都是正确的,这样就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-14

你好!

你的算法是对的,

但是要把 printf("%f\n",s); 里面的 %f 改成 %lf

还有要把 scanf("%f",n); 里面的 %f 改成 %lf

完整的代码是:

#include<stdio.h> 
int main()
{
    double n,i,s=0.0;
    scanf("%lf",&n); 
    for(i=1; i<=n ;i++)
    {
             s=s+1/i;
    }
    printf("%lf\n",s);
    return 0;
}

本回答被提问者和网友采纳
第2个回答  2014-03-21
#include<stdio.h>
void main()
{ int k;
int i=1; //对求和中的分母赋值 //自增长的不能是float
double sum; //把sum当作和
int n=-1; //符号变化
printf("请输入你想输入的N\n");
scanf("%d",&k); //%d是输入整数
for(sum=0;i<=k;i++) //用for循环来求和
{ n=-n; //外面的那个循环完全没必要
sum=(sum+(1.0/i*n));

}
printf("计算结果是 %.6f\n",sum);
}
第3个回答  2016-12-29
第一个
sum=0
第二个
i++
第三个
1/t
第4个回答  2013-10-15
#include<stdio.h> 
int main()
{
    double s=0;int i,n//double n,i,s=0; 控制变量最好是int类型的
    scanf("%lf",&n);//scanf("%f",&n);double是%lf 
    for(i=1; i<=n ;i++)
    {
             s=s+1.0/i;//1改1.0
    }
    printf("%lf\n",s);//%lf 
    return 0;
}

相似回答