写个程序,求1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10...

#include<stdio.h>
int main()
{int n,sign=-1;
double t,sum=0;
for(n=1;n<=10;n++)
{ sign=(-1)*sign;
t=sign/n;
sum=sum+t;
}
printf("%lf\n",sum);
return 0;
}
执行的时候总得到1,问题出在哪儿啊??

因为你设置的1/2等用的都是整形变量,当然结果等于0,你把后面的变量改成float就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
注意:1/2是0,1.0/2结果才是0.5。同样-1/4,1/5都是0,希望可以帮到你。本回答被网友采纳
相似回答