输入一元二次方程ax2+bx+c=0系数a,b,c的值,计算并输出一元二次方程的两个根x1和x2.Private Sub Command1_Click()Dim a%,b%,c%,,x1!,x2!a = Val(Text1)b = Val(Text2)c = Val(Text3)d = b ^ 2 - 4 * a * cIf d >= o Thenx1 = (-b + d ^ 1 / 2) / (2 * a)x2 = (-b - d ^ 1 / 2) / (2 * a)MsgBox "x1=" & x1ElseMsgBox "No Root!"End IfEnd Sub到底错在哪里,
问题描述:
输入一元二次方程ax2+bx+c=0系数a,b,c的值,计算并输出一元二次方程的两个根x1和x2.
Private Sub Command1_Click()
Dim a%,b%,c%,,x1!,x2!
a = Val(Text1)
b = Val(Text2)
c = Val(Text3)
d = b ^ 2 - 4 * a * c
If d >= o Then
x1 = (-b + d ^ 1 / 2) / (2 * a)
x2 = (-b - d ^ 1 / 2) / (2 * a)
MsgBox "x1=" & x1
Else
MsgBox "No Root!"
End If
End Sub
到底错在哪里,
答
这是神马语言?不过我觉得这里x1 = (-b + d ^ 1 / 2) / (2 * a)是不是应该把1/2用括号括起来,好像乘幂运算的优先级比除法的高。
答
a应该不等于零,否则"No Root!"
答
首先,要限制a0否则,根本就不是一元二次方程,后面的程序也要出错.
其次,if d>=o Then 这里,这个d>=o似乎 不是零0,你写的是英文字母o.
第三,公式法求根的时候,d^1/2改为d^(1/2)