연산자의 활용문제(시:분:초) 구하기_비기전수 실력다지기 chap07 번
지지않는
질문 제목 : /연산자와 %연산자를 활용해서 문제를 풀려면 어떻게 해야 하는지요?1. 굳이 %연산자를 사용해야 하는 이유가 궁금합니다...-
%연산자는 나머지를 구하는 연산자가 아닌지..
2. 함수의 반환형 선언위치에 void를 넣는 이유와, 넣었을떄어떤 결과가 일어나는지 궁금합니다.
그리고, void를 반환형 선언위치에 넣을 때, return 을 안쓰는 이유는 무엇인가요?질문 내용 : 비기전수 chapter 07의 5번 문제를 풀고 있는데요
답이라고 인터넷에 올라온 것을 보았는데...제가 생각하는 답이랑+_+ 다른ㄱ ㅓ같아서..
제가 생각한게 맞는지 궁금해서여쭤보고자 합니다..
문제
초 정보를 시:분:초의 정보로 변환하여 출력하는 함수를 다음과 같은 형태로 정의하자.
void sectohms(int sec){...} /*함수 내에서 시: 분 : 초 정보 출력 /
그리고 이 함수를 활용해서 3245초와 5109초를 시: 분 : 초의 정보로 변환하여 출력하는 main함수도 정의하자.
힌트
이 문제의 해결을 위해서는 /연산자와 %연산자를 활용해야 하며, 변수도 적절히 선언해야 한다.
---------------------------------------------------------------------------------------------------
저의 풀이
출력값: 0시 54분 3245초, 1시 85분 5109초
void sectohms(int sec)
{
int second,min,hour;
second=sec;
min=(sec/60);
hour=(sec/3600);
printf(%d시 %d분 %d초\n,hour,min,second);//함수 내에서 정보를 출력하라고 했으므로!
}
int main(void)
{
int num=3245, num2=5109; // 주어진 숫자 정의
sectohms(num);
sectohms(num2);
return 0;
}
---------------------------------------------------------------------------------------------------
인터넷에서 찾아낸 풀이
#includestdio.h
void sectohms(int sec) // 함수 내에서 시:분:초 정보 출력
{
int hour, minute, sec2; //계산과 호출에 필요한 변수를 int로 한번에 정의
hour=sec/3600; // 시간을 구하는 계산
minute=sec%3600/60; // 분을 구하는 계산
sec2=sec%60; // 초를 구하는 계산
printf(%d sec = %d : %d : %d \n, sec, hour, minute, sec2); //출력을 담당하는 printf 호출
}
int main(void) // 메인함수 호출
{
int num=3245, num2=5109; // 주어진 숫자 정의
sectohms(num);
sectohms(num2);
return 0;
}