当前位置: 代码迷 >> C语言 >> 新人学C算"1+1/2+1/3.....+1/N"的问题
  详细解决方案

新人学C算"1+1/2+1/3.....+1/N"的问题

热度:137   发布时间:2007-02-08 01:37:44.0
新人学C算"1+1/2+1/3.....+1/N"的问题
如题目要求,算1+1/2+1/3+1/4......+1/n的和,我是刚开始学的,自己编了程序如下:


#include <stdio.h>
void main()
{
int i,n,sum;
scanf("%d",&n);
sum=0;
i=1;
while(i<=n){
sum=sum+1.0/i;
i++;
}
printf("%d\n",sum);
}


但运行的时候,不管n输入什么,结果都是1
我是初学者,请懂的朋友给我指出错误,我实在不知道错在那里,谢谢拉先
搜索更多相关的解决方案: 人学  

----------------解决方案--------------------------------------------------------

第一次发贴,自己顶下先


----------------解决方案--------------------------------------------------------
你得用float定义才行
int定义不行
还有SUM的初值不是0是1
I的初值是2
----------------解决方案--------------------------------------------------------
main()
{ float i,n,sum;
scanf("%f",&n);
sum=0.0;
i=1.0;
while(i<=n)
{sum+=1/i;
i++;
}
printf("%f\n",sum);
}
楼主,你试试我这个行吗
----------------解决方案--------------------------------------------------------

记住,数据类型,,,这题肯定是浮点型的了。。。。


----------------解决方案--------------------------------------------------------

呵呵,谢谢大家了,问题解决了
4楼的朋友给出的解法是对的

终结下:问题的关键是数据类型出错了


再次谢谢大家的帮助


----------------解决方案--------------------------------------------------------
以下是引用zinsword在2007-2-8 1:37:44的发言:
如题目要求,算1+1/2+1/3+1/4......+1/n的和,我是刚开始学的,自己编了程序如下:


#include <stdio.h>
void main()
{
int i,n,sum;
scanf("%d",&n);
sum=0;
i=1;
while(i<=n){
sum=sum+1.0/i;
i++;
}
printf("%d\n",sum);
}


但运行的时候,不管n输入什么,结果都是1
我是初学者,请懂的朋友给我指出错误,我实在不知道错在那里,谢谢拉先

1+1/2+1/3+1/4......+1/n
黄色:第一个是1+。。。。。。所以sum的初值值1
粉红色:1.0第一次开始除的是2 ,1.0第二次开始除的是3 所以i的初值是2


----------------解决方案--------------------------------------------------------
这个题目教材上有比较详细的说明。。。
----------------解决方案--------------------------------------------------------
  相关解决方案