1l用1/i明显是错的,因为当i>1的时候1/i是等于0的,应该改为1.0/i,而且他没有考虑正负问题
2l没有用函数形式表示,而且他所谓的更改符号貌似无法起到作用吧
3l犯的错误和1l差不多,1/(i+1)是等于0的
#include
"stdio.h"
double
fun(int
n)
{
double
sum=0;
float
flag=1;//正负符号,且直接用float类型,不会出现1/i等于0的情况
int
i;
for
(i=1;i<=n;i++)
{
sum+=flag/i;
flag*=-1;//正负交替
}
return
sum;
}
int
main()
{
int
n;
printf("input
n:");
scanf("%d",&n);
double
sum=fun(n);
printf("s(%d)=%lf\n",n,sum);
return
0;
}