新人学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的和,我是刚开始学的,自己编了程序如下:
#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
----------------解决方案--------------------------------------------------------
这个题目教材上有比较详细的说明。。。
----------------解决方案--------------------------------------------------------