C언어/백준
c언어) 백준 5073번 < 삼각형과 세 변 >
Nesun
2021. 5. 4. 00:00
백준 5073번 문제를 풀어보았다.
문제는 다음과 같다. 세 변의 길이를 입력 받고 비교 후 결과를 출력하는 문제이다.
진짜 짜증나네...
0 0 0 하면 계산하지 말라해서 그냥 다시 변수 입력받는 건 줄 알았는데 그냥 종료였다....
그래서 자꾸 이 난리였던거였음,,,
고려해야할 사항은 다음과 같다.
- 0 0 0 일 경우 반복문 종료
- 가장 긴 길이 값이 다른 두 값의 합보다 크거나 같은 경우 (Invalid)
- 세 변의 길이가 같은 경우 (Equilateral)
- 두 변의 길이만 같은 경우 (lsosceles)
- 세 변 모두 길이가 다른 경우 (Scalene)
#include <stdio.h>
int compare(i,j,k) {
int max=0;
if (i > j)
max = i;
else
max = j;
if (max <= k)
max = k;
return max;
}
void main() {
int a, b, c;
while (1) {
int max = 0;
scanf_s("%d %d %d", &a, &b, &c);
if (a == 0 && b == 0 && c == 0)
break;
max = compare(a, b, c);
if (max >= ((a + b + c) - max))
printf("Invalid\n");
else if (a == b && b == c)
printf("Equilateral\n");
else if (a == b || b == c || c == a)
printf("Isosceles\n");
else
printf("Scalene\n");
}
return 0;
}
완성된 코드를 제출해보았다.
조건 2를 자세히 설명해보면 세 값을 모두 더하고 max 값을 빼면 가장 긴 변의 길이를 뺀 두 변의 길이가 나오게 된다.
후...