문제
삼각형의 세 변의 길이를 a,b,c라 할 때, 입력된 값 a,b,c에 대하여 다음과 같이 삼각형의 종류를 판단하여 출력하는 프로그램을 작성하시오.
( a,b,c 입력값 2,3,9 -> 삼각형이 아님
a,b,c 입력값 4,6,7 -> 예각 삼각형
a,b,c 입력값 3,4,5 -> 직각 삼각형
a,b,c 입력값 3,5,7 -> 둔각 삼각형 )
요구분석
1.정수형태의 삼각형의 세 변의 길이를 입력받는다.
2.입력받은 값을 계산하여 출력값을 나타낸다.
3.출력값은 삼각형이 아님, 예각삼각형, 직각삼각형, 둔각삼각형 4가지 경우로 나타낸다.
해결방법
1.삼각형의 세 변의 길이를 입력받고, 조건문을 통하여 계산 후 조건 값을 출력하는 방법
2.삼각형의 세 변의 길이를 입력받고, 가장큰 변과 나머지 변을 구하여 조건문을 통해 계산 후 조건 값을 출력하는 방법
배경지식
1.삼각형의 정의
가장 큰 변이 나머지 두 변의 합보다 작아 삼각형이 성립함.
2.삼각형의 종류
3.삼각형의 종류 구하는 방법
가장 큰 변=C 나머지 두 변=a,b라 가정할 경우
* a^2+b^2=c^2 일 경우 직각삼각형
* a^2+b^2<c^2 일 경우 둔각삼각형
* a^2+b^2>c^2 일 경우 예각삼각형
알고리즘
조건1을 선택. 가장 변수도 가장 작게 선언하고 조건문의 수도 최소화 되어 가장 효율적인 방법일 것 같아 택하였음.
1.세 정수값을 입력받는다.
2.입력받은 값을 if문을 통해 식을 계산 후 참일 경우 삼각형이 아님 출력, 거짓일 경우 else if문 수행.
3.삼각형일 경우 식을 계산 하여 참일 경우 직각삼각형 출력 아닐 경우 else if문 수행.
4.직각삼각형이 아닐 경우 식을 계산하여 참일 경우 둔각삼각형 출력 아닐 경우 else문 수행.
5.위의 식이 다 거짓일 경우 예각 삼각형 출력
소스코드
#include <stdio.h>
void main()
{
int a,b,c;
printf("세 변의 길이를 입력하세요 : ");
scanf("%d %d %d",&a,&b,&c);
if(a+b<=c || a+c<=b || b+c<=a)
printf("삼각형이 아님\n");
else if(a*a+b*b == c*c || a*a+c*c == b*b || c*c+b*b == a*a)
printf("직각삼각형\n");
else if(a*a+b*b < c*c || a*a+c*c < b*b || c*c+b*b < a*a)
printf("둔각삼각형\n");
else
printf("예각삼각형\n");
}
실행결과
향후과제
1.삼각형의 여러 가지 공식과 성질에 대해 알아본다.
2.더 간단한 방법이 있는지 생각해본다.
'개발자 > C' 카테고리의 다른 글
C언어 소수놀이, 소수구하기 (0) | 2015.09.29 |
---|---|
C언어 나무심기 (1) | 2015.09.29 |
C언어 공약수, 최대공약수 출력 (0) | 2015.09.29 |
C언어 제곱수 출력 (0) | 2015.09.29 |
C언어 합계구하기 (0) | 2015.09.29 |