vb编写的计算S=1+2*2+3*3*3+4*4*4*4+。。。。

我编的是PrivateSubCommand1_Click()DimiAsInteger,sumAsIntegersum=0Fori=1Toinputboxa=i^isum... 我编的是Private Sub Command1_Click()
Dim i As Integer, sum As Integer
sum = 0
For i = 1 To inputbox
a = i ^ i
sum = sum + a
Next i
msgbox.Text = sum

End Sub
结果只能到5,过我就说错误溢出,可框在大点还是那样啊 请哪儿位懂的教一下,谢谢。。
展开
 我来答
PeterBFord
2008-11-12 · TA获得超过329个赞
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
溢出并不代表你的输入框大小不够,而是你的数据类型不支持如此大的数字。你声明两个变量时,如果将数据类型设为integer,那么数值是不能小于-32767或者大于+32768的。所以,建议你将数据类型声明为单精度single或者双精度double,这样就可以在很大程度上避免这个问题。希望能对你有帮助。
hejian511
2008-11-12 · TA获得超过846个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1478万
展开全部
当你到第六个时.结果大于整型的取值范围 32767 所以
你要这样定义 sum As Variant 因为如果你用LONG 那么一样的溢出

Private Sub Command1_Click()
Dim i As Integer, sum As Variant
sum = 0
For i = 1 To Val(Text1.Text)
a = i ^ i
sum = sum + a
Next i
MsgBox Str(sum)
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiivon
2008-11-12 · TA获得超过156个赞
知道小有建树答主
回答量:348
采纳率:0%
帮助的人:329万
展开全部
Private sub command1_click()
Dim i as integer
Dim a ,sum as long

For i = 1 to val(inputbox("Please input a integer number!"))
sum = sum + i^i
next i

msgbox "The sum is " & sum

Eund Sub

您试下这样可以否?但,仍要注意思输入的整数不要过大哦.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyaxing
2008-11-12 · 超过13用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:46.4万
展开全部
那是肯定的,因为vb里面integer类型的范围是32767,要想再大些的话可以定义为long。
溢出和框的大小是没有关系的、、溢出是指内存中的数据出了问题、、
建议你装一个msdn,有什么问题在vb环境中直接按f1,会有提示的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolsport
2008-11-13 · TA获得超过193个赞
知道小有建树答主
回答量:494
采纳率:0%
帮助的人:205万
展开全部
感觉好像标题和下面的过程有点不符合哦

下面的过程是显示1+2*2+3*3+4*4....
标题s=1+2*2+3*3*3+4*4*4*4+。。。。

???????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式