숙제 2 (삼각형2)
2차원 평면에서 세 개의 점 A, B, C로 만들어지는 삼각형이 직각삼각형, 둔각삼각형, 예각삼각형인지를 판별하는 프로그램을 작성하시오. 직각삼각형은 삼각형의 세 각 중에서 한 개의 각이 직각인 삼각형을 말하며, 둔각삼각형은 세 각 중에서 한 개의 각이 90도보다 큰 삼각형을 말하며, 예각삼각형은 삼각형의 세 각이 모두 90도보다 작은 삼각형을 말한다.
#include<iostream>
#include<cmath>
using namespace std;
void find_max(int *a,int *b, int *c){
//가장 큰 값을 찾아서 c에 저장
int temp=0x00;
if(*a>*c){
temp=*a;
*a=*c;
*c=temp;
}
if(*b>*c){
temp=*b;
*b=*c;
*c=temp;
}
}
int distance(int x1,int y1, int x2,int y2){
int x_l=(int)pow((x1-x2),2);
int y_l=(int)pow((y1-y2),2);
return (x_l+y_l);
}
int main(){
int x1=0x00,x2=0x00,x3=0x00;
int y1=0x00,y2=0x00, y3=0x00;
int a=0x00, b=0x00,c=0x00;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
a=distance(x1,y1,x2,y2);
b=distance(x1,y1,x3,y3);
c=distance(x2,y2,x3,y3);
find_max(&a,&b,&c);
if(sqrt((float)(a))+sqrt((float)(b))<=sqrt((float)(c))) printf("0");
else if(a+b==c) printf("1");
else if(a+b<c) printf("2");
else printf("3");
cout<<endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C++] 수직/수평 선분의 교차 (0) | 2021.06.27 |
---|---|
[C++] 사각형과 점 과의 거리 (0) | 2021.06.27 |
[C++] 삼각형의 종류 (0) | 2021.06.27 |
[C++] 직선그래프출력하기 (0) | 2021.06.27 |
[C++] 모래시계출력하기 (0) | 2021.06.27 |