C语言求1+1/2+1/3+1/4+1/5,,,,+1/n

#include<stdio.h>
int main()
{

double i,n,s,t;
i=1.0;s=0;
while (scanf("%lf\n",&n)!=EOF)
{
t=1/i;
s=t+s;

i=i+1;
if (i>n)
printf("%.2lf\n",s);

}
return 0;
}
不知道错哪里了

while (scanf("%lf\n",&n)!=EOF)
{
t=1/i;
s=t+s;

i=i+1;
if (i>n)
printf("%.2lf\n",s);

}
貌似一直都在循环?试试
scanf("%lf\n",&n);

while (1)
{
if (i>n)
{
printf("%.2lf\n",s);
break;
}
t=1/i++;
s+=t;
}
我也是新手 你试试
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-29
return 0;这一句和 printf("%.2lf\n",s);对调一下
因为当i>n时,应该退出循环(return 0;),退出循环之后再显示结果printf("%.2lf\n",s);
第2个回答  2012-10-29
#include<stdio.h>
int main()
{

double n,s,t;
int i=1;s=0;
scanf("%lf",&n);
for(;i<=n;i++)
{ t=1.0/i;
s+=t;

}

printf("%.2lf\n",s);

return 0;}
相似回答