본문 바로가기

코딩테스트

[C++] 삼각형의 종류 (2)

숙제 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