小考大家

loadagain 2007-06-13 12:11:37
请问下面代码a,b,c的结果各是多少,为什么?答案过段时间再公布

sub test()
a=31*32*33*34*35*36
b=1*2*3*4*5*6
c=a/b
end sub



...全文
352 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
whtportland 2007-06-18
  • 打赏
  • 举报
回复
a=0
b=720
c=0
a的初始值默认是0,所以不管乘以什么数,都是0。b=720,则c=0/720=0。
江上飞 2007-06-18
  • 打赏
  • 举报
回复
a:1402410240
b:720
c:1947792
Lucern 2007-06-18
  • 打赏
  • 举报
回复
好强悍......
loadagain 2007-06-16
  • 打赏
  • 举报
回复
to whtportland(我是一朵漂浮的云) (总有一种力量它让我们抖擞精神),
Ok,那么如下面这样呢,
sub test()

a=1

for i%=1 to 6
a=a*(30+i%)
next i%

b=1*2*3*4*5*6

c=a/b

end sub

killer_wo 2007-06-15
  • 打赏
  • 举报
回复
顶一下哈,
传说中的堕落 2007-06-15
  • 打赏
  • 举报
回复
都是牛人..呵呵
whtportland 2007-06-15
  • 打赏
  • 举报
回复
double是双精度型,小数类型。因为31-36是integer型,所以a也是integer型了,仍然会溢出。改成31.0*32.0*33.0*34.0*35.0*36.0就不会出问题了。
loadagain 2007-06-15
  • 打赏
  • 举报
回复
to whtportland(我是一朵漂浮的云) (总有一种力量它让我们抖擞精神),
Ok,那么如下面这样呢,
sub test()

for i%=1 to 6
a=a*(30+i%)
next i%

b=1*2*3*4*5*6

c=a/b

end sub
loadagain 2007-06-15
  • 打赏
  • 举报
回复
to whtportland(我是一朵漂浮的云) (总有一种力量它让我们抖擞精神),
Ok,那么如下面这样呢,
sub test()

for i%=1 to 6
a=a*(30+i%)
next i%
b=1*2*3*4*5*6

c=a/b

end test()
loadagain 2007-06-14
  • 打赏
  • 举报
回复
to whtportland(我是一朵漂浮的云) (总有一种力量它让我们抖擞精神) ,
Okay,有那么一点点意思.那么这样呢,
sub test()
dim a as double
a#=31*32*33*34*35*36
b=1*2*3*4*5*6
c=a/b
end sub

or

sub test()
dim a#
a#=31*32*33*34*35*36
b=1*2*3*4*5*6
c=a/b
end sub

whtportland 2007-06-13
  • 打赏
  • 举报
回复
a=31*32*33*34*35*36在LS这种类VB语言中肯定会报溢出的。因为LS的运算机制会先开一部分内存来存放计算的结果,而这个开辟的内存空间是与运算的对象有关的,你事先没有声明a是什么类型,LS会把32-36都看成是整型数,所以只开2byte的内存空间存放计算结果,也就最多是32767,31*32*33*34*35*36肯定超限了。
flyingghost 2007-06-13
  • 打赏
  • 举报
回复
1947792

因为我是java版走错路过来的。

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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