求大神,这个怎么错了?

来源:2-1 Linux C语言 初始指针

qq_愿时光安好_04050009

2017-01-10 23:38

#include<stdio.h>

/*求使得1+1/2+1/3+...........+1/n>15的最小n值*/

int main()

{

int n;

float sum = 0;

for (n=1; sum<15; n++)

{

sum+=1/n;

}

printf ("n=%d", n);

return 0;

}

设置个循环条件,sum<15,一旦不满足条件了就输出n值,不知道哪里错了。


写回答 关注

2回答

  • android4j
    2017-01-11 15:12:12
    已采纳

    1/n 结果是int类型,所以除了当n=1时,1/1=1,其他情况1/2=0,1/3=0。。。所以永远无法满足sum<15这个条件。

    qq_愿时光...

    非常感谢!

    2017-01-12 15:19:32

    共 1 条回复 >

  • 慕粉1042124937
    2017-01-11 15:47:08

    试试在1/n前面加个强制类型转换

Linux C语言指针与内存

指针-C语言的核心,代领大家对c语言有更加深刻的理解

116533 学习 · 250 问题

查看课程

相似问题