再次请教C语言高手

来源:百度知道 编辑:UC知道 时间:2024/04/29 07:10:23
1-1/2+1/3-1/4+...+1/99-1/100

#include <stdio.h>
void main()
{float i,p,sum;
for(i=1,p=1,sum=0;i<=100;i++,p=-1*i)
sum=sum+1/p;
printf("sum=%f\n",sum);
}

这样编写对吗??
可是答案跟其他人的不同!!!

不对
原因在for(i=1,p=1,sum=0;i<=100;i++,p=-1*i)
中的 p=-1*i; i一直都是整数, 这样一来 p 的值永远是负数,
所以 不是你要的结果
p 的值用奇偶 判断 来决定将可以了 ,不难,你自己想下吧, 应该可以想到的!

你的程序是没想都是减1/(p*i),实际上不是,应该是偶数项为减,奇数项为加。
可以改成下面这样。
void main()
{
float i,sum;
for(i=1,sum=0;i<=100;i++)
sum=sum+((int)i%2==0?-1:1)/i;
printf("sum=%f\n",sum);
}

不会报错,可是程序得不到你想要的