在VB学习过程中遇到了问题 求解决

2025-06-26 19:00:26
推荐回答(4个)
回答1:

___你if判断里面的代码出了问题,写得有些混乱,给你个例子吧,可以直接执行的,我试过_______
Private Sub Command1_Click()

Dim a, b, c As Integer
Dim x1, x2 As Single

a = Val(InputBox("请输入方程参数 a 的值:", "aX^2+bX+c=0"))
b = Val(InputBox("请输入方程参数 b 的值:", "aX^2+bX+c=0"))
c = Val(InputBox("请输入方程参数 c 的值:", "aX^2+bX+c=0"))

If (b ^ 2 - 4 * a * c) < 0 Then
MsgBox "抱歉,△小于零,方程无解"
Else
x1 = (-b + Sqr(b ^ 2 - 4 * a * c)) / (2 * a)
x2 = (-b - Sqr(b ^ 2 - 4 * a * c)) / (2 * a)

MsgBox x1 & Space(10), vbInformation, "x1的值为:"
MsgBox x2 & Space(10), vbInformation, "x2的值为:"
End If

End Sub

回答2:

平方根是sqrt不是sqr
你在开方前没有判断Δ非负,非负应该在开方前判断
还有,你遗漏了Δ=0的情况
脑子迷糊了?思路都乱了。应该先判断Δ,若成立则计算,而不是先计算再判断。
执行sqrt 前必须保证被开方数非负,否则系统会报错(其他类似计算也是这样,Visual Studio的环境比较严格)

回答3:

给你点提示:
1,算法错误: 判断的应该是b ^ 2 - 4 * a * c,而非Sqr(b ^ 2 - 4 * a * c)
2.IF语句混乱,梳理思路为满足B平方-4AC>0那么……,如果满足B平方-4AC=0那么……,如果<0那么……

回答4:

把If a = 0 Then 的= 改为<>