2018. 12. 25. 23:06ㆍ카테고리 없음
배열의 정렬과 제어문의 활용
문제
세 변의 길이를 실수형으로 입력받아 삼각형의 종류를 출력하는 프로그램을 작성하시오.
(단, 직각삼각형, 정삼각형, 이등변삼각형 이외의 삼각형은 모두 일반삼각형으로 칭하고, 삼각형을 만들 수 없는 경우도 고려해야 한다.) 1
삼각형이 될 수 없는 조건 : 한 변의 길이가 나머지 두 변의 길이의 합보다 길다.
정삼각형의 조건 : 세 변의 길이가 모두 같다.
직각삼각형의 조건 : 가장 긴 한 변의 길이의 제곱이 나머지 변 각각의 제곱의 합과 같다.
이등변삼각형의 조건 : 어느 두 변의 길이가 서로 같다.
main 함수를 통해 알 수 있듯이, 크게 세 함수를 거쳐 삼각형의 종류를 판별할 수 있다.
1. getArray 함수
- 세 변의 길이(실수형)를 사용자로부터 입력받아 배열에 저장하는 함수
2. Arrangement 함수
- 입력받은 배열을 내림차순으로 정렬하는 함수
- 거품 정렬(Bubble sort) 활용
3. Judgement 함수
- if 조건문을 통해 삼각형의 종류 결정
- Print_Judge 함수에서 switch 제어문으로 결과를 출력
1. getArray
* 각각 세 변수를 정의하는 것보다 서로 같은 자료형이기에 배열을 활용하는 것이 좋다고 생각했다.
2. Arrangement
* 입력값을 배열로 저장한 덕분에 정렬도 한결 수월하다.
** 굳이 정렬할 필요는 없었지만, 어떤 것이 최댓값인지 알면 이후 삼각형 종류 판별에 유용하게 활용할 수 있다. 2
3. Judgement
* 삼각형의 결정 조건에 따라 if 조건문으로 judge 변수에 값을 부여했다.
** 정삼각형 판별문은 이등변삼각형 판별문의 하위 조건문으로 배치해도 좋다.
*** 앞서 Arrangement 함수를 통해 최댓값을 알고 있으므로, 조건문을 간단하게 쓸 수 있었다.
**** 이등변 여부와 직각 여부는 독립적인 관계이다. 때문에 변수의 값 조절도 독립적으로 이루어지도록 신경썼다. 3
3-1. Print_Judge
* judge 값에 따라 결과를 출력한다.
** 일의 자리와 십의 자리에 따라 문자열에 단어를 부여하는 형식으로 만들 수도 있다.
실행시간 : 약 1.1ms
ㅡ