| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:VB作业,给三角形计算面积,问题在哪?
只看楼主 加入收藏
huyangbo21
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
VB作业,给三角形计算面积,问题在哪?
Private Sub Form_Click()
  Dim a, b, c, p, s As Integer
      Do
          a = InputBox("请输入边长,输入-1退出程序", "计算三角形面积")
          b = InputBox("请输入边长,输入-1退出程序", "计算三角形面积")
          c = InputBox("请输入边长,输入-1退出程序", "计算三角形面积")
      If a < 0 Or b < 0 Or c < 0 Then Exit Do
      If a + b < c Or b + c < a Or c + a < b Then
              Print "不能构成三角形"
      Else
              p = (a + b + c) / 2
              s = Sqr(p * (p - a) * (p - b) * (p - c))
              Print "该三角形面积为:", s
      End If
    Loop While a > 0
Print "退出"
End Sub

无论输入多少的边长,就是不执行Else下面的语句块
搜索更多相关主题的帖子: 三角形 
2015-04-03 19:47
huyangbo21
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-30
收藏
得分:0 
应该是 Dim a, b, c, p, s As Integer  这句的问题,应该要用  dim a as integer,b as integer.......这样
If a + b < c Or b + c < a Or c + a < b Then   这句也有问题,应该把“<”换成“<=”
刚学,见笑了
2015-04-03 21:49
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
存在错误就是二楼说的,数据类型错误。
inputbox 返回的是 字符串的数据。而你定义时,没有指定变量类型,就是 Variant 类型。
给这个变量一个字符串类型的数据,那么这二个变量做 + 运算时,是把这二个值 连接起来,组成新的字符串,
如输入 3 4 5
判断应时  "34" < "5" ,那自然 是成立的,所以永远不会执行到 ELSE 部分去。
另外你输入 空白时,或取消时,都会报错,应该加以判断。

程序代码:
Private Sub Form_Click()
Dim a  As Integer, b As Integer, c As Integer, p As Integer, s As Integer
Dim t As String
Do
    '第一条边,先提示并输入到临时变量
    t = InputBox("请输入第一条边长,负数或不输入退出程序", "计算三角形面积")
    If IsNumeric(t) Then            '输入的是不是数字
        a = Val(t)                  '是数字取值
    Else
        Exit Do                     '不是数字退出
    End If

    t = InputBox("请输入第二条边长,负数或不输入退出程序", "计算三角形面积")
    If IsNumeric(t) Then
        b = Val(t)
    Else
        Exit Do
    End If
    
    t = InputBox("请输入第三条边长,负数或不输入退出程序", "计算三角形面积")
    If IsNumeric(t) Then
        c = Val(t)
    Else
        Exit Do
    End If
    
    If a < 0 Or b < 0 Or c < 0 Then Exit Do     '如果有负数,退出
    Cls                                         '清除前面的显示
    
    If a + b < c Or b + c < a Or c + a < b Then     '判断是否能构成三角形
        Print "不能构成三角形"
    Else                                            '计算三角形面积
        p = (a + b + c) / 2
        s = Sqr(p * (p - a) * (p - b) * (p - c))
        Print "三条边分别为:"; a; b; c
        Print "该三角形面积为:"; s
    End If
Loop While a > 0
Print "退出"
End Sub


不解释了

授人于鱼,不如授人于渔
早已停用QQ了
2015-04-04 09:50
快速回复:VB作业,给三角形计算面积,问题在哪?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039894 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved