给出三角形三边,判断能否构成三角形,如果可以算出其面积。否则重新输入,知道输入值为-1,用VB编写

2026年09月24日 00:19
有3个网友回答
网友(1):

Dim a As Single, b As Single, c As Single, m As Single, s As Single
a = Val(InputBox("请输入边长a", "输入边长"))
b = Val(InputBox("请输入边长b", "输入边长"))
c = Val(InputBox("请输入边长c", "输入边长"))
If Math.Sqrt(a) + Math.Sqrt(b) - Math.Sqrt(c) <= 0 Or Math.Sqrt(a) + Math.Sqrt(c) - Math.Sqrt(b) <= 0 Or Math.Sqrt(b) + Math.Sqrt(c) - Math.Sqrt(a) <= 0 Then
MsgBox("不能构成三角形", vbInformation + vbOKOnly, "错误")
Else
m = (a + b + c) / 2
s = Math.Sqrt(m * (m - a) * (m - b) * (m - c))
MsgBox("三角形面积为" & Str(s), vbInformation + vbOKOnly, "计算结果")
End If

网友(2):

Private Sub Form_Click()
Dim a As Single, b As Single, c As Single
a = InputBox("请输入边长a", "提示")
If a = -1 Or b = -1 Or c = -1 Then Exit Sub
b = InputBox("请输入边长b", "提示")
If a = -1 Or b = -1 Or c = -1 Then Exit Sub
c = InputBox("请输入边长c", "提示")
If a = -1 Or b = -1 Or c = -1 Then Exit SubIf a + b > c And b + c > a And a + c > b Then
s = (a + b + c) / 2
MsgBox "三角形面积为" & s, 0, "结果"
Else
Call Form_Click
End If
End Sub

网友(3):

Private Sub Form_Click()
Dim n(1 To 3) As Double, i As Integer, s As Double
Do
For i = 1 To 3
n(i) = Val(InputBox("请输入边长" & Chr(96 + i), "输入边长"))
If n(i) = -1 Then Exit Sub
Next
If n(1) + n(2) > n(3) And n(1) + n(3) > n(2) And n(2) + n(3) > n(1) Then Exit Do
Loop
s = (n(1) + n(2) + n(3)) / 2
MsgBox "面积:" & Sqr(s * (s - n(1)) * (s - n(2)) * (s - n(3)))
End Sub