2010年9月11日 星期六

三角形的判斷

內容 : 
給你一個三角形的邊長,請你判斷它是銳角 (acute)、直角 (right)、或是鈍角 (obtuse) 三角形。

輸入說明 :
輸入只有一行,含有三個由空白隔開的正整數 a, b, c (0 < a, b, c ≤ 46340),代表三角形的邊長。
輸出說明 :
依三角形的類別輸出「acute triangle」、「right triangle」、或「obtuse triangle」。

範例輸入 :
3 4 5
範例輸出 :
right triangle            
                                              
                                                  貼文 BY阿揚

5 則留言:

  1. 老師 目前 就 我跟小白 每天 輪流出題目 ,有時候我可能會多做些@@就麻煩老師了! 還有謝謝 老師請客!!真是太好吃了:D

    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Line Input #1, step
    Max = 0
    q = Split(step)
    For i = 0 To 2
    If q(i) > Max Then
    Max = Val(q(i)) ^ 2
    End If
    ans = ans + Val(q(i)) ^ 2
    Next i
    ans = ans - Max
    Select Case Max
    Case Is > ans
    Print #2, "obtuse triangle"
    Case Is = ans
    Print #2, "right triangle"
    Case Is < ans
    Print #2, "acute triangle"
    End Select
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  2. 1.還是年輕好啊,那些吃到飽的,就交給你們啦。
    好吃就好,我(和家人)中秋節也會烤的,哈。
    2.不用輪流出題,就一直寫,另一個人寫了,post出來後,另一個人也將該題再用自己的方式解一次。
    現在是要累積會做的題目。
    另外,將一些似乎會做,但是做不出來的,另外開一個(未解)的帖子吧。我們在一起時,再來一起解一解吧。
    3.這題,有個小錯誤吧。
    If q(i) > Max Then
    這個比較是錯的吧。第一次max=0會可以,第二次max=9就不行了吧。
    熊掌

    回覆刪除
  3. 喔喔@@發現錯誤= =
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Line Input #1, step
    Max = 0
    q = Split(step)
    For i = 0 To 2
    If q(i) > Max Then
    Max = Val(q(i))
    End If
    ans = ans + Val(q(i)) ^ 2
    Next i
    ans = ans - Max^2
    Select Case Max
    Case Is > ans
    Print #2, "obtuse triangle"
    Case Is = ans
    Print #2, "right triangle"
    Case Is < ans
    Print #2, "acute triangle"
    End Select
    Close #2
    Close #1
    End
    End Sub

    回覆刪除
  4. Dim S(3) As Integer
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Input #1, S(1), S(2), S(3)
    M = 0
    For i = 1 To 3
    If M < S(i) Then M = S(i): k = i
    Next i
    ans = M ^ 2
    For i = 1 To 3
    If k <> i Then ans = ans - S(i) ^ 2
    Next i
    Select Case ans
    Case Is = 0
    Print #2, "Right triangle"
    Case Is > 0
    Print #2, "obtuse triangle"
    Case Is < 0
    Print #2, "acute triangle"
    End Select
    Close #2
    Close #1
    End
    End Sub
    By小白
    謝謝老師的請客^^ 真的吃很飽說XDDD(不過昨天兩點到九點總共拉了三次肚子說0.0 看來肉得要再烤熟一點XD

    回覆刪除
  5. 阿揚小白好,
    1.程式OK
    2.程式的輸出,要仔細看題目的說明,連大小寫都不要錯誤哦。像小白的直角三角形。

    熊掌

    回覆刪除