아까 낮에도 올렸었는데 아직도 모르겠어서요 ㅠㅠ
187,800초를 일 , 시간 , 분 , 초 로 변환하는 프로그램을 작성하시오. 인데요
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define SECPERMIN 60
#define MINPERHOUR 60
#define HOURPERDAY 24
void main()
{
int sec, min, hour, day;
printf("시간을 입력하세요 : ");
scanf("%d", &sec);
min = sec % 60;
hour = min % 60;
day = hour % 24;
printf("%d 초는 %d 일 , %d 시간 %d 분 %d 초 이다 \n", sec, day, hour, min, sec);
}
%연산자를 이용해서 예를 들어서 몇일 몇분 몇초 이렇게 나타내라는건데 ..
디버깅해보니까 0일 0시간 0분 187800초 라고 나오더라구요 ㅠㅠ
도와주십숑 ㅠㅠ
음... %연산자는 나머지값을 줍니다.
min에 sec/60의 나머지를 대입하면 어찌될까요? 또 sec를 앞 뒤 출력에 다 쓰셨네요?
이건 연습장 들고 논리를 짜고나서 코드로 구현해야 할듯요.. 저는 그렇게 했거든요.
아 허세갑님 해봤는데 ㅠㅠㅠ 뭐라해야되지 답이 안나와요
#define로 만든 것도 안쓰니까 좀 뻘쭘하고요.
정의한걸 뭐 예를 들어서 min % hour 이런식으로 해줘야되는건가요 ?
#define로 정의한 건 앞의 것이 보이면 뒤에 것으로 바꾼다 입니다.
하 ... 뭔지 모르겠네 ㅠㅠㅠ
#define HERSEOGAB 123 int main(){ int a = HERSEOGAB * 100; 이렇게 씁니다.
일단 해볼게용
이틀 되긴했는데 함 끄적여봄 일단 그냥 디파인은 문자를 넣으면 거기에 대응하는 숫자로 바꿔준다는거고
뭐가 문제냐면 나머지는 빼냈는데 나머지말고 나눈값이 안남음 따로 변수 선언해서 나눈값도 넣어야함 예를들어서 int min, min_a 요래 두개 선언하고 min =sec/60; min_a= min` 한담에 마지막출력문에는 min_a를 출력시키면됌 예를 들어서 6040초를 넣으면 min에는 100이 나오는데 문제가 표기를 100 으로됨 이중에 60은 day로 올라가고 사라져야 할껀데 그 60을 없애기 위해서 min_a함수로 나머지 받아내서 나머지만 표기하는거 마찬가지로 sec도 sec_a같이 만들어서 sec` 한담에 sec_a를 출력시켜야함 위에 문장보면 187000인가 받은 sec를 그대로 표기하는데
위에 문장을보면 sec는 입력받고 계산하는데만 썼지 값이 바뀐적이없음 그러니 당연히 187000 이대로 뜨는거 나머지만 출력해야하는데