I have a perfect running code, BUT one criteria for this homework is that it has atleast two different functions. How can i devide this code into one more functions?
I want to sort the alarmClock() function into more functions. There's alot going on in there. Maybe a updateTime() function. I tried something like this but this doesn't work:
#include <stdio.h>
void alarmClock(int, int);
void updateTime(int, int, int);
int main() {
int present_time;
int time_for_alarm;
printf("Time indicates in HHMMSS! \nPresent time: ");
scanf("%d", &present_time);
printf("Time for alarm: ");
scanf("%d", &time_for_alarm);
if (present_time == time_for_alarm)
printf("ALARM!");
else
alarmClock(present_time, time_for_alarm);
return 0;
}
void alarmClock(int presT, int alarmT) {
int presentHH = presT / 10000;
int presentMM = (presT / 100) % 100;
int presentSS = presT % 100;
int combineTime;
while (presT != alarmT) {
printf("%02d:%02d:%02d \n", presentHH, presentMM, presentSS);
presentSS++;
updateTime(presentHH, presentMM, presentSS);
combineTime = presentHH * 100 + presentMM;
presT = combineTime * 100 + presentSS;
}
printf("ALARM!");
}
void updateTime(int presentHH, int presentMM, int presentSS) {
if (presentSS > 59) {
presentSS = 0;
presentMM++;
if (presentMM > 59) {
presentMM = 0;
presentHH++;
if (presentHH > 24) {
presentHH = 1;
}
}
}
}
My teacher hinted me saying "you could make on printTime() function and one updateTime() function sending present_time as arguments". But i dont know how...
This is my working code that needs atleast one more function.
#include <stdio.h>
void alarmClock(int, int);
int main() {
int present_time;
int time_for_alarm;
printf("Time indicates in HHMMSS! \nPresent time: ");
/ scanf("%d", &present_time);
/
printf("Time for alarm: ");
scanf("%d", &time_for_alarm);
if (present_time == time_for_alarm)
printf("ALARM!");
else
alarmClock(present_time, time_for_alarm);
return 0;
}
void alarmClock(int presT, int alarmT) {
int presentHH = presT / 10000;
int presentMM = (presT / 100) % 100;
int presentSS = presT % 100;
int combineTime;
while (presT != alarmT) {
printf("%02d:%02d:%02d \n", presentHH, presentMM, presentSS);
presentSS++;
if (presentSS > 59) {
presentSS = 0;
presentMM++;
if (presentMM > 59) {
presentMM = 0;
presentHH++;
if (presentHH > 24) {
presentHH = 1;
}
}
}
combineTime = presentHH * 100 + presentMM;
presT = combineTime * 100 + presentSS;
}
printf("ALARM!");
}
The working code gives this output (correct output);
if present_time = 115957
and time_for_alarm = 120001
output is 11:59:57 11:59:58 11:59:59 12:00:00 ALARM
but when i created the updateTime() function the code keeps running forever if i have these values:
if present_time = 115957
and time_for_alarm = 120001
output is 11:59:57 11:59:58 11:59:59 11:59:60 11:59:61 11:59:62 11:59:63 ... and so on and on (presentSS keeps going +=1 forever)