#include <iostream>
using namespace std;
#include <stdio.h>
int i;
int main()
{
int n;
double sum=0,a=1;
cin>>n;
for(i=1;i<=n;i++)
{
sum=sum+1/a;
a++; //列如3 : 第1部结束 sum=0.5 a=-2+1=-1 a=1
a=-a; 显然不成立
}
printf("%.4lf",sum);
return 0;
}
for(i=1;i<=n;i++)
{
if(i%2==0)
sum=sum-1.0/i; //特别留意i为整形
else
sum=sum+1.0/i;
}
将循环替换即可解决上述问题