입력 코드
#include <stdio.h>
#include <math.h>
main() {
int a, b, c;
while (1) {
scanf("%d %d %d", &a, &b, &c);
if (a != 0 && b != 0 && c != 0){
if (pow(a, 2) + pow(b, 2) == pow(c, 2))
printf("right\n");
else if (pow(b, 2) + pow(c, 2) == pow(a, 2))
printf("right\n");
else if (pow(a, 2) + pow(c, 2) == pow(b, 2))
printf("right\n");
else
printf("wrong\n");
}
else
break;
}
}
코드 설명
#수학 #기하학 #조건문 #반복문
#include <stdio.h>
#include <math.h>
main() {
int a, b, c;
do{
scanf("%d %d %d", &a, &b, &c);
if (pow(a, 2) + pow(b, 2) == pow(c, 2))
printf("right\n");
else
printf("wrong\n");
}
while (a != 0);
}
처음에는 do~while문을 이용해서 작성했는데 실패했다. 마지막에 0 0 0 을 입력해도 right가 출력돼서 그런 것 같았다.
#include <stdio.h>
#include <math.h>
main() {
int a, b, c;
while (1) {
scanf("%d %d %d", &a, &b, &c);
if (a != 0 && b != 0 && c != 0){
if (pow(a, 2) + pow(b, 2) == pow(c, 2))
printf("right\n");
else
printf("wrong\n");
}
else
break;
}
}
그래서 while문을 이용해서 0 0 0인 경우에 break하도록 작성했지만 또 틀렸다. 예제에는 c가 모두 가장 긴 변이었지만 그렇다고 해서 가장 긴 변이 c가 아닐 수도 있기 때문이다. (a^2+b^2=c^2 이라는 법이 없기 때문 / b^2+c^2=a^2일 수도 있음)
#include <stdio.h>
#include <math.h>
main() {
int a, b, c;
while (1) {
scanf("%d %d %d", &a, &b, &c);
if (a != 0 && b != 0 && c != 0){
if (pow(a, 2) + pow(b, 2) == pow(c, 2))
printf("right\n");
else if (pow(b, 2) + pow(c, 2) == pow(a, 2))
printf("right\n");
else if (pow(a, 2) + pow(c, 2) == pow(b, 2))
printf("right\n");
else
printf("wrong\n");
}
else
break;
}
}
그래서 수정했는데 코드가 너무 길어지는 것 같아서 다른 풀이를 찾아봤더니 처음에 각 변의 길이를 제곱해서 새로운 변수를 선언한 다음에 || 기호로 깔끔하게 작성하는 방법도 있었다.
↓↓↓ 참고한 사이트
travelerfootprint.tistory.com/55
백준 알고리즘 4153번: 직각삼각형 C언어
문제 출처: www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각
travelerfootprint.tistory.com
c언어 반복문(for, while, do ~ while)
1. 반복문은 특정 조건을 만족하는 동안 계속 반복하여 실행하는 제어문입니다. 반복 제어문에는 for문, while문, do ~ while문이 있습니다. 반복문종류에 대한 표현 형식을 알아 보겠습니다. for 반복
edu-coding.tistory.com
문제 출처
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
'C' 카테고리의 다른 글
#44. [백준_C언어] 10872 : 팩토리얼 (0) | 2021.01.22 |
---|---|
#43. [백준_C언어] 3053 : 택시 기하학 (0) | 2021.01.22 |
#41. [백준_C언어] 3009 : 네 번째 점 (0) | 2021.01.21 |
#40. [백준_C언어] 10757 : 큰 수 A+B (1) | 2021.01.20 |
#39. [백준_C언어] 2839 : 설탕 배달 (0) | 2021.01.20 |