C언어 문제/수학 문제
삼각형의 종류(예각, 직각, 둔각)와 둘레, 넓이 구하기
자연&사람
2021. 10. 27. 18:02
반응형
문제).
정수인 삼각형의 세변을 길이를 입력한 후, 삼각형의 종류(예각삼각형, 직각삼각형, 둔각삼각형)를 판단하고 삼각형의 둘레의 길이와 면적을 구하시오.
실행 예1).
입력)
세 변의 길이를 입력하세요 : 3 4 5
결과).
직각삼각형입니다.
삼각형의 둘레는 12이고,
삼각형의 면적은 6.000000입니다.
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
프로그램 소스
#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c, len;
double area, p;
printf("세 변의 길이를 입력하세요 : ");
scanf("%d %d %d", &a, &b, &c);
if (a + b <= c || a + c <= b || b + c <= a) {
printf("삼각형이 아닙니다.\n");
return 0;
} 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");
}
len = a + b + c;
p = len / 2.0;
// 삼각형의 면적은 헤론의 공식을 이용하였습니다.
area = sqrt(p * (p - a) * (p - b) * (p - c));
printf("삼각형의 둘레는 %d이고\n", len);
printf("삼각형의 면적은 %lf입니다.\n", area);
return 0;
}
반응형