일단 문제는


삼각형의 밑변, 빗변, 높이를 받아서 직각삼각형인지 판별하는거얌

세 변이 아니라 높이라 나머지 한 변을 따로 계산을 해야하지만 이건 괜찮음


문제는 루트를 쓰니까 int형 데이터가 망가지는건지 

세 변을 3,4,5로 줘도 직각이 아니라고 반항함.


일단 코드


Public Class Form1

    Dim a, b, h, x, c As Integer

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        a = Val(TextBox1.Text)

        b = Val(TextBox3.Text)

        h = Val(TextBox2.Text)

        x = System.Math.Sqrt(b ^ 2 - h ^ 2)

        c = System.Math.Sqrt(h ^ 2 + (a - x) ^ 2)


        If a ^ 2 = c ^ 2 + b ^ 2 Then

            MsgBox("직각삼각형입니다.")

        Else

            MsgBox("직가삼각형이 아닙니다.")

        End If

    End Sub

End Class



일케 짰단말이지


a,b,c 변수를 CInt로 감아도 오류 뜨고

a,b,c,x,h 모든 변수를 double로 선언하면 일단 다 직각이 아니라고 반항함


데이터 타입의 문제일까?