编写一个C语言程序:求S=1/1+1/2+1/3+…+1/n
这个程序有什么错误,为什么输出结果永远是1.0000000#include<stdio.h>voidmain(){inti,n;doublet,s=0;scanf("%d...
这个程序有什么错误,为什么输出结果永远是1.0000000
#include<stdio.h>
void main()
{
int i,n;
double t,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=1/i;
s=s+t;}
printf("s=%lf\n",s);
} 展开
#include<stdio.h>
void main()
{
int i,n;
double t,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=1/i;
s=s+t;}
printf("s=%lf\n",s);
} 展开
4个回答
展开全部
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i,sum = 0,n;
float t,s = 0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=(float)1/i;
s=s+t;
}
printf("s=%f\n",s);
}
同学,给你改了一下,数据类型之间转换的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
t=1/i;
i是整型,1/i也会是整型,1/1=1,1/2=0,1/3=0.....所以相加结果为1
改为t=1.0/i;就行了
i是整型,1/i也会是整型,1/1=1,1/2=0,1/3=0.....所以相加结果为1
改为t=1.0/i;就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询