原题是这样的:
我的代码是这样的:
#include <stdio.h>
int main(void)
{
int xiangshu = 0;
double sum1 = 0.0;
double sum2 = 0.0;
double half1 = 0.0;
double half2 =0.0;
printf("输入指定的项数:");
scanf("%d", &xiangshu);
while(xiangshu>0)
{
for (int i = 0; i<xiangshu; i++)
{
sum1 = sum1 + 1.0/(1.0+1.0*i);
}
for(int x =0;x<xiangshu;x = x+2)
{
half1= half1 + 1.0/(1.0+1.0*x);
}
for(int y = 1; y<xiangshu; y = y+2)
{
half2 = half2 - 1.0/(1.0 + 1.0*y);
}
sum2 = half1 + half2;
printf("the %d item result of the first sequence was %lf\n", xiangshu, sum1);
printf("the %d item result of the second sequence was %lf\n", xiangshu, sum2);
printf("Please anthor input the item you want to check:");
scanf("%d", &xiangshu);
}
printf("End \n");
return 0;
}
但是产生的值确实累加的:
我不知道这个问题在哪,因为这个章节理论上还没有用到判断语句,所以要用循环写,求解这个为什么两次的值为什么加到一起了,同时问如何解决该问题!?