C语言程序 1-1/2+1/3-1/4+...+1/99-1/100

#include<stdio.h>voidmain(){intsign=1;floatdeno=2.o,sum=1.0,term;while(deno<=100){sig... #include<stdio.h>
void main()
{
int sign=1;
float deno=2.o ,sum=1.0, term;
while(deno<=100)
{
sign=-sign;
term=sign/deno;
sum=sum+term;
deno=deno+1;
}
printf("f%|n",sum);
}
我弄不清楚这个程序怎么知道偶数分母时候减,奇数分母时是加,我希望高手讲解一下
展开
 我来答
TimmyShine
2009-02-13 · 超过10用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:0
展开全部
在while循环中sign=-sign这句来实现分母的加减。不过你这句有点问题,正确的形式应该是sign=(-1.0)*sign,这样就能实现你的构想了。

在这个程序中,你先对sign赋初值为1,在while循环中,每循环到
sign=(-1.0)*sign时就会实现正负(加减)的变换了。
百度网友8231528
推荐于2016-04-25 · TA获得超过1151个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:213万
展开全部
sign=-sign; 这句话实现了这一点
我们可以跟踪程序以下
循环之前 sum=1 sign=1 deno=1;此时sum就是第一个元素的值
第一次循环 相当于加上第二个元素
deno=2;
sign=-sign 即 sign=-1了,此时就的到第二个元素是负号
sum=sum+sign(1/deno)=1+(-1)(1/2);

第二次循环 相当于加上第三个元素
deno=3
sign=-sign 即 sign=+1了,此时就的到第三个元素是正号
sum=sum+sign(1/deno)=1+(-1)(1/2)+(+1)(1/3);;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cnopqopq
2009-02-13 · TA获得超过3363个赞
知道小有建树答主
回答量:783
采纳率:0%
帮助的人:592万
展开全部
float deno=2.o ,sum=1.0, term;
deno是从2开始的 那不是2 就是 sign=-sign;
sign先是-1
deno加到3 sign 就变成1
以此类推
偶数是-1
奇数是+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友44978b5
2009-02-13 · TA获得超过812个赞
知道答主
回答量:103
采纳率:0%
帮助的人:91.1万
展开全部
看漏了...抱歉...楼上好眼力,佩服

float i;
float sum = 0;
for(i = 1.0; i <= 100.0; i ++)
{
if(i % 2 == 0)
sum -= 1/i;
else
sum += 1/i;
}
这部分才会起到作用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乜帅红0Q
2009-02-13 · TA获得超过905个赞
知道小有建树答主
回答量:693
采纳率:100%
帮助的人:461万
展开全部
关键在这一句:
sign=-sign
每次循环取反,奇偶性是由初始条件(sign=1)决定的,程序不判断奇偶性。
第1次循环:
sign=-sign; //sign=-1
term=sign/deno; //term=-1/2.0
sum=sum+term; //sum=1+(-1/2)
deno=deno+1; //deno=2.0+1=3.0
所以sum为
1-1/2
第2次循环:
sign=-sign; //sign=-(-1)=1
term=sign/deno; //term=1/3.0
sum=sum+term; //sum=1+(-1/2)+(1/3)
deno=deno+1; //deno=3.0+1=4.0
所以sum为
1+(-1/2)+(1/3)=1-1/2+1/3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式