c语言级数求和题..

描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

格式
输入格式
键盘输入 k

输出格式
屏幕输出 n

样例
样例输入
1
样例输出
2

代码如下(输入1,测试一下就知道对不对了):

#include <stdio.h>
int main()
{
    int k = 0;
    scanf("%d", &k);
    double s = 1;
    int n = 1;
    while (s <= k)
    {
        n += 1;
        s += 1.0 / n;
    }
    printf("%d", n);
    return 0;
}

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int a = 0;
    scanf("%d", &a);
    double x = 1;
    int n = 1;
    while (x < a)
    {
        n += 1;
        x += 1.0 / n;
    }
    printf("%d", n);
};
#include <stdio.h>
int main()
{
      int k,n=1;
      double p=0;
      scanf("%d",&k);
      while(p<=k)
      {
          p += 1.0/n;
          n++;
      }
      printf("%d",n);
      return 0;
}