应该是计算式子每一项的那里需要修改下。
修改如下:
#include <stdio.h>
#include <math.h>
int main(void){
int i,n;
int a=1; // 式子每一项的分母,初始分母为1
float j;
float sum=0.0;
int flag=1; // 式子每一项的符号位
scanf("%d",&n);
for(i=1;i<=n;i++){ // 计算式子的n项 的和
j=flag*1.0/a; // 当前式子项的值为 符号位乘以 1.0除以分母
sum=sum+j; // 将当前项累加到和中
//printf("a=%d,flag=%d,j=%f,sum=%f\n",a,flag,j,sum);
a= a+2; // 下一项的分母 比当前项分母 大2
flag=-flag; // 符号为变换
}
printf("%f\n",sum);
return 0;
}
#include<stdio.h>
int main()
{
int n;
int i;
double sum = 0.0;
int sign = 1;
scanf("%d",&n);
for(i = 1;i<=n;i++){
sum += sign*1.0/i;
sign = -sign;
}
printf("f(%d)=%f\n",n,sum);
return 0;
}
按题意,输入n,计算1-(1/3)+(1/5)-省略号+(1/n),应该是这样写,供参考:
#include <stdio.h>
int main()
{
int n, i;
double s = 0;
do {
scanf("%d", &n);
if(n % 2 == 0)
printf("n必须是奇数,请重新输入:");
else
break;
} while(1);
for(i = 1; i <= n; i += 2)
s += (i % 4 == 1 ? 1.0 / i : -1.0 / i);
printf("%f\n", s);
return 0;
}
题目的n是指有n项吧,你这个等于只计算了m/2项