C语言帮忙看看这个小程序有什么问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:13:03
double fun(int n)
{

double t; double sum=0;
int i=1;int c=-1;

while(i<=n)
{
t=1.0/i;
if ( i>1 && i%2==0 ) t=t*c;i++;
sum+=t;

}

return sum;

}

函数功能是
SN=1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...+ 1/2N-1 - 1/2N
题目要求N=8时
SN=0.662827
我怎么算都不对..
首先感谢你们对我的答复.
一楼的朋友:我在IF语句对t的正负有操作,你可以上机试一下
二楼的朋友:IF语句如果没有'{}'则到最近的一个分号为止..
我建议你多看看书.

楼主 程序没问题 是题目错了 不信你笔算一下

在函数里面的if语句部分,如果条件不成立,程序就会跳过i++;和sum+=t;这两句,进而直接就去执行return sum;所以,应该把这部分改为if......else....语句,楼主看一下,潭浩强的《C语言设计》第91页到92叶就知道了,
我想应该就是这样了,

n