1.你可以再加一个变量,记录正负号
2.printf输出double要用%lf
t = -t毫无意义,下一个循环开始t就重新赋值了啊
你到底要实现什么功能呢
#include <stdio.h>
int main()
{
double a,sum=0;
int i=0,t=1;
for(i=1;i<=101;i+=2)
{
sum += 1.0/(i*t);
t*=-1;
}
printf("%lf",sum);
}
int i=1; 初始化
double sum=0 初始化
double t=0.0 初始化
for(i=1;i<=101;i+=2) 循环 从1开始, 当i>101 结束 每次循环 i的值+2
t=(1.0/i)*1.0; t的值在每次循开始时 = 1 / i * 1
sum+=t sum的值 = 每轮t的值加起来
t=-t 令 t 的 值 = -t
printf("%f",sum; 打印sum 的值
解决方法:sum += (1.0 / i) * t *pow(-1,i) 望采纳
输出是%lf
这么改下,供参考:
#include <stdio.h>
int main()
{
int i = 1;
double sum = 0, t = 1.0;
for (i = 1; i <= 101; i += 2) {
sum += (1.0 / i) * t;
t *= -1.0;
}
printf("%f", sum);
return 0;
}