求最小的一个数n(1+1/2+...+1/n)大于k

问题遇到的现象和发生背景

img


用代码块功能插入代码,请勿粘贴截图

我想要达到的结果

#include
int main()
{ int i,k;
 float n,sum;
 while(scanf("%d",&k)!=EOF)
  { n=0;sum=0;
   for(i=1;;i++)
    { n=n+1.0/i;
      sum=sum+n;
      if(sum>=k)
       printf("%d",i);
       break;
    }
  }
    return 0;
}


if后边加上括号

 
#include<stdio.h>
int main()
{ int i,k;
 float n,sum;
 while(scanf("%d",&k)!=EOF)
  { n=0;sum=0;
   for(i=1; ;i++)
    { n=n+1.0/i;
       if(n>k){
           printf("%d",i);
       break;
      }
      
    }
  }
    return 0;
}

n=n+1.0/i;
sum=sum+n;
n就已经是级数和了,sum这又加n是要干什么
还有,题目要求sum>k,你为什么非要写>=