用VBS编了个算24的小程序,为什么结果不对呢?比如1243或7643这两组数字,错在哪?
a=InputBox("输入第一个数字")b=InputBox("输入第二个数字")c=InputBox("输入第三个数字")d=InputBox("输入第四个数字")'...
a = InputBox("输入第一个数字")
b = InputBox("输入第二个数字")
c = InputBox("输入第三个数字")
d = InputBox("输入第四个数字")
' 遍历1到4,代表加减乘除,在具体计算用select case表示
For x = 1 To 4 Step 1
For y = 1 To 4 Step 1
For z = 1 To 4 Step 1
Select Case x
Case 1
e=a+b
Case 2
e=a-b
Case 3
e=a*b
Case 4
e=a/b
End Select
Select Case y
Case 1
e=e+c
Case 2
e=e-c
Case 3
e=e*c
Case 4
e=e/c
End Select
Select Case z
Case 1
e=e+d
Case 2
e=e-d
Case 3
e=e*d
Case 4
e=e/d
End Select
If e=24 Then
i=1
'解析符号
Select Case x
Case 1
r="+"
Case 2
r="-"
Case 3
r="×"
Case 4
r="÷"
End Select
Select Case y
Case 1
s="+"
Case 2
s="-"
Case 3
s="×"
Case 4
s="÷"
End Select
Select Case z
Case 1
t="+"
Case 2
t="-"
Case 3
t="×"
Case 4
t="÷"
End Select
'解析完成
msgbox a&r&b&s&c&t&d
End if
Next
Next
Next
If i = 0 Then
msgbox "此题无解"
End if 展开
b = InputBox("输入第二个数字")
c = InputBox("输入第三个数字")
d = InputBox("输入第四个数字")
' 遍历1到4,代表加减乘除,在具体计算用select case表示
For x = 1 To 4 Step 1
For y = 1 To 4 Step 1
For z = 1 To 4 Step 1
Select Case x
Case 1
e=a+b
Case 2
e=a-b
Case 3
e=a*b
Case 4
e=a/b
End Select
Select Case y
Case 1
e=e+c
Case 2
e=e-c
Case 3
e=e*c
Case 4
e=e/c
End Select
Select Case z
Case 1
e=e+d
Case 2
e=e-d
Case 3
e=e*d
Case 4
e=e/d
End Select
If e=24 Then
i=1
'解析符号
Select Case x
Case 1
r="+"
Case 2
r="-"
Case 3
r="×"
Case 4
r="÷"
End Select
Select Case y
Case 1
s="+"
Case 2
s="-"
Case 3
s="×"
Case 4
s="÷"
End Select
Select Case z
Case 1
t="+"
Case 2
t="-"
Case 3
t="×"
Case 4
t="÷"
End Select
'解析完成
msgbox a&r&b&s&c&t&d
End if
Next
Next
Next
If i = 0 Then
msgbox "此题无解"
End if 展开
展开全部
帮你在VB调试了下你的VBS,发现了很有趣的现象
输入1 2 4 3的时候结果会返回两个,其中一个是错误的"1+2-4*3"
因为我调试的时候,想跟踪流程,所以就懒得每次都打1 2 4 3,直接就把inputbox那几条换成
a = 1
b = 2
c = 4
d = 3
然后发现那个错误答案没了,我很是十分惊讶啊,这是什么情况
再进一步调试发现,这个错误真的非常有趣,涉及到你代码的两个设计缺陷
首先那个错误答案是这么被错误计算的:
1 inputbox返回的是字符串,而字符串是可以通过符号 " + " 连接起来的
所以1+2=12
2 字符串是不可以用 " - "的,所以字符串才会被当成数字进行计算,12-4=8
3 最后是8*3=24
发现两个问题没有,第一是你没有定义变量的类型,执行"+"时被当成字符串
第二是你没有进行运算符优先级判断
剩下问题交给你自己去解决了.
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询