VB中的一道题目不会,请赐教

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:02:01
5、输入一元二次方程ax2+bx+c=0系数a,b,c的值,计算并输出一元二次方程的两个根x1和x2。
【提示】求根时要对三个系数考虑:当b2-4ac<0,则方程没有实数根,程序给出相应提示“方程没有实数根”;如果b2-4ac>0,则方程有实数根,计算方程的根并输出。

我的代码为:
Dim a%, b%, c%
Private Sub Command1_Click()
If b * b - 4 * a * c >= 0 Then
X1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a)
X2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)
MsgBox X1 & X2, , "该方程有实数根"
Else
MsgBox "该方程没有实数根"
End If
End Sub
但运行不了,请问是什么原因,请赐教了,谢谢啊!!

你的程序中存在两个问题:
1是x1、x2没有声明
2中没有输入方程的各个系数
这两个原因(或者是第二个原因)导致程序运行不了。现修改如下:
Dim a%, b%, c%
Dim X1 As Single, X2 As Single
Private Sub Command1_Click()
a = Val(InputBox("方程系数a的值:", "", 1))
b = Val(InputBox("方程系数b的值:", "", 2))
c = Val(InputBox("方程系数c的值:", "", 1))
If b * b - 4 * a * c >= 0 Then
X1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a)
X2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)
MsgBox X1 & " " & X2, , "该方程有实数根"
Else
MsgBox "该方程没有实数根"
End If
End Sub
应该没有问题了,已经运行过了。

a,b,c 没有赋值,所以都是 0

X1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a) 'a是0 除以 0 报错
X2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a)

....不会