일단 문제는
삼각형의 밑변, 빗변, 높이를 받아서 직각삼각형인지 판별하는거얌
세 변이 아니라 높이라 나머지 한 변을 따로 계산을 해야하지만 이건 괜찮음
문제는 루트를 쓰니까 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로 선언하면 일단 다 직각이 아니라고 반항함
데이터 타입의 문제일까?
ㅈㄴ 어렵. 국비충이 알려주실거에요
345로 주고 내부 변수값 한번 디버거로 한줄식 돌리면서 봐보셈
해당 댓글은 삭제되었습니다.
비주얼베이직은 =이게 같다구나..
루트를 뭐하러씀 걍 제일 큰수 제곱이랑 나머지 두개 제곱 더한거랑 같은지만 판별하면 되는데
루트를 안쓰면 나머지 한 변을 구할수가 없잖앙
3 4 5 준게 각각 밑변 높이 빗변이나 높이 민변 빗변 아님?
뭔소리를 하는건지 모르겠네 a>b>c 로 정렬한 다음에 a²=b²+c² 인지 아닌지만 판별하면 직각삼각형인지 나오잖아 루트를 쓸필요가 없어
마즘. 근데 모든 삼각형이 높이 = 나머지 한 변의 길이가 아니니까 저렇게 계산했는데 이거 아니야?
자바임? 나 cpp밖에 모름
비주얼베이직이양
c 구할때 루트 쓴다는 소리 같은데 걍 a² = b² + (h² + ~~~~)² 이런식으로 때려박아도 되잖아 굳이 c를 구할필요가 없을텐데
?? c가 나머지 한 변이라고 할 때 높이h
높이 h 빗변 a 밑변 b 나머지 한 변 = c 일케 있을 때 c를 구하려면 루트를 써야하지 않아? 나같은 경우 x라는 변수를 만들어서 x= root(b^2 - h^2) c^2 = h^2 +(a-x)^2 if a^2 = c^2+b^2 then "직각삼각형입니다" 일케 짰는데
뭐가 밎변이고 뭐가 빚변인진 몰것는데
a = 빗변 b = 밑변 h = 높이 c = 나머지 한 변의 길이 x = c 구하기 위해서 쓴 변수
아... ㅇㅅㅇ
나머지 한 변의 길이가 높이와 똑같은지도 판정해야지 ㅇㅅㅇ
해당 댓글은 삭제되었습니다.
정삼각형이라고 가정할 경우에 높이 = 나머지 한 변의 길이가 아니니까 나머지 한 변의 길이는 따로 구해야하는거 아니양?
ㅇㅇ 위에덧글은 이해 잘멋함
혼자 해보면서 아마 데이터 타입 문제일 것 같다는 생각이 계속 들엉 변수들을 int로 선언해서 풀면 자꾸 허용 범위를 넘어섰다고 하고 double로 하면 지혼자 소숫점 지랄나서 무조건 아니라고 우기구