티스토리 뷰
문제
화씨온도를 섭씨온도로, 섭씨온도를 화씨온도로 바꾸려고 합니다. 두 온도 사이의 환산 공식은 다음과 같습니다
환산공식
- 화씨온도에서 섭씨온도로 환산 : (화씨온도 - 32) / 1.8 = 섭씨온도
- 섭씨온도에서 화씨온도로 환산 : (섭씨온도 * 1.8) + 32 = 화씨온도
현재 온도 value와 현재 단위 unit이 매개변수로 주어질 때, 환산한 온도의 정수 부분을 return 하도록 solution함수를 작성했습니다.
그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다.
주어진 코드에서 한 줄 만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
주어진 코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int value, char* unit) {
int converted = 0;
if (unit[0] == 'C')
converted = value * 1.8 + 32;
if (unit[0] == 'F')
converted = value - 32 / 1.8;
return converted;
}
int main() {
int value = 527;
char* unit = "C";
int ret = solution(value, unit);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
value = 980;
unit = "F";
ret = solution(value, unit);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
결과(오류) => 화씨 908도는 섭씨 526도이다.
value | unit | return |
527 | "C" | 980 |
980 | "F" | 962 |
코드분석(오류해결)
단계 | 과정 |
main | 변환할 온도가 담겨있는 변수 value와 그것의 방식이 무엇인지가 담겨있는 변수 unit를 선언한 후 solution함수를 호출한다. |
solution | 변환한 값을 넣을 변수 converted를 선언한다. 방식(unit)이 섭씨(C)일때, 이 값은 화씨(F)로 변환해야 하기 때문에 변환식 converted = value * 1.8 + 32;를 진행한다. 방식(unit)이 화씨(F)일때, 이 값은 섭씨(C)로 변환해야 하기 때문에 변환식 converted = value - 32 / 1.8;를 진행한다. |
오류 | 화씨 -> 섭씨로 변환하는 식에서 converted = value - 32 / 1.8;를 그대로 진행하면 연산자 우선순위에 의하여 32/1.8이 진행되고 난 후에 value와 뺄셈식이 적용된다. 따라서 비교적 우선순위가 낮은 -식에 괄호를 사용해야 한다. |
solution | 변환값 converted를 반환한다. |
main | 결과를 출력한 후 프로그램을 종료한다. |
결과코드(최종)
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int value, char* unit) {
int converted = 0;
if (unit[0] == 'C')
converted = value * 1.8 + 32;
if (unit[0] == 'F')
converted = (value - 32) / 1.8;
return converted;
}
int main() {
int value = 527;
char* unit = "C";
int ret = solution(value, unit);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
value = 980;
unit = "F";
ret = solution(value, unit);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
결과
value | unit | return |
527 | "C" | 980 |
980 | "F" | 526 |
goorm
구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.
www.goorm.io
'[코테] > [GroomEdu]' 카테고리의 다른 글
[COS PRO 2급] 3차 1번_학생의 등수 구하기 (C/C++) (0) | 2021.05.13 |
---|---|
[COS PRO 2급] 2차 9번_투표에 대한 후보 찾기 (0) | 2021.05.12 |
[COS PRO 2급] 2차 8번_소수의 갯수 구하기 (C/C++) (0) | 2021.05.11 |
[COS PRO 2급] 2차 5번_몬스터 공격하기 (C/C++) (0) | 2021.05.10 |
[COS PRO 2급] 2차 6번_엘리베이터의 총 이동거리 구하기 (C/C++) (0) | 2021.05.10 |
댓글
공지사항
최근에 올라온 글
TAG
- 배열활용문제
- Cos Pro
- 프로그래머스
- 알고리즘
- 구름에듀
- 구름에듀 기출문제
- 코딩테스트
- YBM기출
- 코스프로
- lv1
- YBM
- 배열
- lv2
- cospro기출문제
- C++
- 구름 기출문제
- programmers
- 연습문제
- C
- groom
- COSPRO 2급
- CosPro
- groomedu
- c언어 기출문제
- 1급
- cospro기출
- 자바
- Java
- 기출문제
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함