又是一段vb程序中的问题,望老师们解惑

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:27:42
程序要求:
键盘输入a,b,c的值,判断它们能否构成三角形.
如能,就弹出对话框:能构成三角形的三条边,并计算它的面积.
如不能,就弹出对话框:不能构成三角形的三条边.
编写的程序如下:
Private Sub Form_Load()
Dim a As Single, b As Single, c As Single
Dim cc As Single, s As Single, area As Single
a = InputBox("请输入第一条边:")
b = InputBox("请输入第二条边:")
c = InputBox("请输入第三条边:")
cc = ((a + b > c) And (c > 0)) And ((a + c > b) And (b > 0)) And ((b + c > a) And (a > 0))
If cc Then
MsgBox "能构成三角形的三条边", vbOKOnly
s = (s + b + c) / 2
area = Sqr(s * (s - a) * (s - b) * (s - c))
MsgBox "该三角形的面积为:" & Str(area), vbOKOnly
Else
MsgBox "不能构成三角形的三条边", vbOKOnly
End If
End Sub

'这段程序能够判断输入的三个数字能不能构成三角形,并弹出msgbox对话框.但是却无法计算三角形的面积.当程要它计算三角形的面积的时候,就停在"area = Sqr(s * (s - a) * (s - b) * (s - c))"这个语句上不动了.并提示"无效的过程调用或参数",我不明白它错在哪里?望各位老师赐教.

s = (s + b + c) / 2
这句改成:
s = (a + b + c) / 2

把 CC 括号外的 And 换成 Or。因 任何一个条件不成立即不能构成三角形,所以应为逻辑或而不是与。
其他没发现啥问题。

如果真停在那句面积计算,
难道你的vb没有sqr内置函数??

S=(s+a+b)/2 :什么意思?
三角形面积应该是底乘以高除以2么?
你的错误是:Sqr(A) A不应为负数