求前n项和,运行得不到结果

求前n项和
sum=1+1/2+1/3....1/n
运行后输入n得不到结果

#include
int main(void)
{
int n;
int i;
double sum=0.0;
scanf("%d",&n);

for( i = 1; 1<=n; i++)
{
    sum += 1.0/i;
}
printf("f(%d)=%lf",n,sum);
return 0;

}

死循环了,结束条件应该是i<=n;你这1<=n直接导致每次循环结束后,1永远满足条件,所以会一直循环执行,没有结果。

  1. for循环里边的i<=n,写成了1<=n,导致for循环条件满足,没有结束,所以没有输出结果

for( i = 1; 1<=n; i++) i写成1了

#include<stdio.h>
int main(void)
{
    int n;
    int i;
    double sum=0.0;
    scanf("%d",&n);
    for( i = 1; i<=n; i++) //这里是i <=n,不是1 <= n
    {
        sum += 1.0/i;
    }
    printf("f(%d)=%lf",n,sum);
    return 0;
}