문제
3.76시간은 몇 시간, 몇 분, 몇 초인지 출력하세요.
코드
#include <stdio.h>
int main() {
int hour, min, sec;
double time = 3.76;
hour = (int)time;
time -= hour;
time *= 60;
min = (int)time;
time -= min;
time *= 60;
sec = (int)time;
printf("3.76시간은 %d시간 %d분 %d초 입니다.", hour, min, sec);
return 0;
}
더보기
3.76시간은 3시간 45분 35초 입니다.
해석
1행 : 라이브러리 호출
2행 : int형 main 함수 생성
3행 : hour, min, sec을 정수형으로 선언, 초기화
4행 : time을 실수형으로 선언하고 3.76 저장
5행 : hour는 time(3.76)을 int형으로 형 변환 후 저장
6행 : time에 hour를 뺀 값을 저장
7행 : 6행 값에 60을 곱함
8행 : 7행 값을 정수형으로 형 변환한 것을 min에 저장
9행 : time에 min을 뺀 값을 저장
10행 : 9행 값에 60을 곱함
11행 : 9행 값을 정수형으로 형 변환한 것을 sec에 저장
12행 : 실수형 숫자들을 정수형으로 형 변환을 했으니 %d를 사용하여 hour, min, sec을 출력
느낀점
문제를 보자마자 이해가 너무 안 됐다. 형 변환하는 것은 이해를 했는데
형 변환해서 hour를 저장한 것은 이해가 되지만, min과 sec은 잘 이해가 안됐다.
그래서 천천히 생각을 하면서 문제를 읽고 생각해보니 생각보다 어렵지 않은 문제였다.
그렇게 어려운 문제는 아니지만 사고력이 조금은 길러질 수 있는 문제였던 것 같다.
'C언어 > 공부한 것들' 카테고리의 다른 글
[혼자 공부하는 C언어] 키보드 수식 결과 출력 (1) | 2023.11.17 |
---|---|
[혼자 공부하는 C언어] BMI 구하기 (0) | 2023.11.17 |
[혼자 공부하는 C언어] 11월 16일 연산자 (0) | 2023.11.16 |
[혼자 공부하는 C언어] 연산자 확인문제 (0) | 2023.11.16 |