关于寺庙的古诗:刚刚编了一个C语言小程序,但运行不成功,请大家帮助,在等!

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 08:59:25
此题求 sum=1+1/(1+2)+1/(1+2+3)....+1/(1+2+...n)
float ch(int q)
{
int i;
float h=0.0;
for(i=1;i<q;i++)
{
h=h+i;
}
return h;
}
main()
{
int i,n;
float sum=0.0;
scanf("%d",n);
for(i=1;i<=n;i++)
sum=sum+1/ch(i);
print ("%f",sum);
}

错误原因:
第一次循环时返回h为0,执行1/h时错误.
还有你scanf里是&n,而不是n
float ch(int q)
{
int i;
float h=0.0;
for(i=1;i<=q;i++)
{
h=h+i;
}
return h;
}
main()
{
int i, n;
float sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+1/ch(i);
}
printf ("%f",sum);
}

同意

float ch(int q)
{
int i;
float h=0.0;
for(i=1;i<q;i++) /*这里应该改成for(i=1;i<=q;i++)*/
{
h=h+i;
}
return h;
}
main()
{
int i,n;
float sum=0.0;
scanf("%d",n); /*这里应该改成scanf("%d",&n); */
for(i=1;i<=n;i++)
sum=sum+1/ch(i);
print ("%f",sum);
}

同意三楼观点