求和数列最终得一个答案输出我不知道自己错在哪里

#include<stdio.h>
int main()
{
int i,n;
double a,sum;
i=1;
sum=0;
while(scanf("%d",&n)!=EOF)
{
while(i<=n)
{
a=1.00/i;
sum=sum+a;
i++;
printf("%.2lf\n",sum);
}
}

return 0;

}


#include<stdio.h>
int main()
{
int i,n;
double a,sum;
i=1;
sum=0;
while(scanf("%d",&n)!=EOF)
{
while(i<=n)
{
a=1.00/i;
sum=sum+a;
i++;

}
    
}
    printf("%.2lf\n",sum);

return 0;
}

int n
double a, sum;
sum = 0;
if (scanf("%d", &n) != EOF)
{
for (int i=1; i<= n;i++)
{
a = 1.00 / i;
sum = sum + a;
printf("%.2lf\n", sum);
}
}