不明白

hurryupxo 2003-10-17 08:41:32
#include <iostream.h>
void main()
{
int n=1,d=2;
double s=0.0,s0;
while((s0=double(n)/d)>=0.000001){
s+=s0;
n+=2;
d+=d;
}
cout <<s;
}
1、可以告诉我:s=0.0,s0是什么意思吗?有什么用法?
2、还有((s0=double(n)/d)>=0.000001)又是什么意思?
我很笨的所以要各位写得明明白白清清楚楚才能明啊!!!!!!!!!
再次多谢各位请写仔细点啊!!!
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianGuangZao 2003-10-17
  • 打赏
  • 举报
回复
absolute value 简写 abs
fabs 表示 float abs
hurryupxo 2003-10-17
  • 打赏
  • 举报
回复
经过了两位高手的指点,我现在就只有(showming(刘效铭))这位高手说的一句话感到不明白的,哪句话就是:“fabs”,是什么意思?
tonybaobao 2003-10-17
  • 打赏
  • 举报
回复
1、s=0.0为什么要写这一句呢?它在程序的主要作用是什么呢?
----------------------------------
s=0.0//赋初值啊!啥作用?你既然定义这个变量,就是说明你要用这个变量,但是变量一定是有一个值的吧,现在暂时你不知道给他赋什么值,所以一般都是赋初值为0。


2、浮点数只是一种计数范围,所以不能像整数一样写等于。
----------------------------------
这句话有问题,浮点数也是数,当然可以等于,可以比较大小。你说2.5>1.5是错的吗?!


((s0=double(n)/d)>=0.000001)
这句话的意思是:因为n,d是整型变量,所以n/d的话结果也是整型。因此当除不尽的话,就得不到预期的答案了,所以要double(n)/d,把n转变成double类型。那么这样除下来就是double型结果了(因为double优先级高,所以double/int,结果是double)
hurryupxo 2003-10-17
  • 打赏
  • 举报
回复
1、s=0.0为什么要写这一句呢?它在程序的主要作用是什么呢?
2、浮点数只是一种计数范围,所以不能像整数一样写等于。
像d等于1,就要写成fabs(d-1)<=0.000001,
其中0.000001是精度:百万分之一
fabs()函数是求浮点是的绝对值。 这句话我不明白你是什么意思啊!请麻烦你再说清楚一点
特别是fabs是什么意思呢????
showming 2003-10-17
  • 打赏
  • 举报
回复
因为你定义的是浮点型,
所以整数写成了小数形式:N.0(N为整数)(无论是单精度还是双精度浮点数都一样)
s0是定义的一个双精度浮点数。

浮点数只是一种计数范围,所以不能像整数一样写等于。
像d等于1,就要写成fabs(d-1)<=0.000001,
其中0.000001是精度:百万分之一
fabs()函数是求浮点是的绝对值。

((s0=double(n)/d)>=0.000001)
是将n强行转为双精度型,
在s0大于或等于0.000001是继续循环
其中s0等于double(n)/d。

over!

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧