VB 任意输入一个1到100以内的整数,并求出它的阶乘

PrivateSubCommand1_Click()DimiAsIntegerDimjAsIntegerDimsAsIntegers=1i=Val(InputBox("请... Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim s As Integer
s = 1
i = Val(InputBox("请您输入一个1到100以内的整数"))
For j = 1 To i
s = s * j
Next j
Print i & "的阶乘等于" & s
End Sub
为什么输入9之后会有溢出问题?怎么改
展开
 我来答
书狂1979
2013-12-13 · TA获得超过155个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:179万
展开全部

Integer 变量存储为 16位(2 个字节)的数值形式,其范围为
-32,768 到 32,767 之间,8的阶乘为40320,所以不到9就已经溢出了,

Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从
-2,147,483,648 到 2,147,483,647,也不适合,所以s可以设为变体类型

Private Sub Command1_Click()
    Dim i As Integer
    Dim j As Integer
    Dim s‘ As Integer
    s = 1
    i = Val(InputBox("请您输入一个1到100以内的整数"))
    For j = 1 To i
        s = s * j
    Next j
    Print i & "的阶乘等于" & s
End Sub
COUNTIFABS
推荐于2016-09-24 · TA获得超过2154个赞
知道大有可为答主
回答量:1594
采纳率:55%
帮助的人:1233万
展开全部

用自定义吧:

LONG也要出错!下面这个可以

Private Sub Command1_Click()
    Dim i
    Dim j
    Dim s
    s = 1
    i = Val(InputBox("请您输入一个1到100以内的整数"))
    For j = 1 To i
        s = s * j
    Next j
    Print i & "的阶乘等于" & s
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小先917
推荐于2018-04-12 · TA获得超过161个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:171万
展开全部
貌似把s定义成double类型就行了,自定义的格式不是个好习惯
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式