c语言中1-1/2+1/3-1/4+1/5-1/6......+1/99-1/100算法解释?
#include<stdio.h>//1-1/2+1/3-1/4+1/5-1/6......+1/99-1/100的值//intmain(void){inta=1;//a...
# include<stdio.h> //1-1/2+1/3-1/4+1/5-1/6......+1/99-1/100的值//
int main(void)
{
int a = 1; //a代代表当前处理的项前面的数值符号比如:- +//
double b = 2.0, //b代表当前项的分母//
c = 1.0, //c代表当前各项的累加和//
d; //d代表当前项的值//
while(b<=100)
{
a = -a;
d = a/b;
c = c+d;
b = b+1;
}
printf("%f\n",c);
return 0;
}
这个是这个程序的算法,但是我始终不理解。
每个项前面的符号怎么变换的?
求大神用简单语言解释一下, 怎么去思考这个算法? 展开
int main(void)
{
int a = 1; //a代代表当前处理的项前面的数值符号比如:- +//
double b = 2.0, //b代表当前项的分母//
c = 1.0, //c代表当前各项的累加和//
d; //d代表当前项的值//
while(b<=100)
{
a = -a;
d = a/b;
c = c+d;
b = b+1;
}
printf("%f\n",c);
return 0;
}
这个是这个程序的算法,但是我始终不理解。
每个项前面的符号怎么变换的?
求大神用简单语言解释一下, 怎么去思考这个算法? 展开
展开全部
a = -a;就是改变符号的。当a=1时,a=-a就是a=-(-1),结果a=1;而当a=1时,a=-a就是a=-(1),结果a=-1。
追问
1. a=1, /*请问你这个地方a 是不是写错了?a应该是a=-1才对吧? 要不然a=1是1,a=1 又是-1,这样是不是不符合逻辑啊*/
a=-a
a=-(-1)
最后a=1.
2. a=1,
a=-a
a=-(1)
最后a=-1.
追答
若a=1,那么a=-a后,a就是-1;而若a=-1,则a=-a后,a就是1。这等价于a=-1*a。
展开全部
a = -a; //这里就是变号
d = a/b; //这里就是正负1除以分母
因为每次a都不同,所以是正负交替的
d = a/b; //这里就是正负1除以分母
因为每次a都不同,所以是正负交替的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a = -a;变换符号
d = a/b;为累加的项
c 为初始项
while(b<=100) 循环99次
c = c+ d;不断累加
d = a/b;为累加的项
c 为初始项
while(b<=100) 循环99次
c = c+ d;不断累加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(b<=100)
{
a = -a; // 符号是通过这里变换的,比如a=1时,这个数为正数,下次在循环的时候a=-a = -1;这样在除以b就得到了负数的分式,在求累加和即可
d = a/b;
c = c+d;
b = b+1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么意思?不懂你要问啥? “int a = 1; //a代代表当前处理的项前面的数值符号比如:- +//”a=-a每项总是前一项的负值、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询