/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Loesung der Uebungsaufgabe Kapitel 4, Nr. 4 */ /* aus "C fuer Java-Programmierer", Hanser-Verlag */ /***************************************************************/ #include int main(void) { struct uhrzeit { unsigned short stunde, minute, sekunde; }; struct intervall { struct uhrzeit anfang, ende; }; struct intervall mein_intervall; int frueher; mein_intervall.anfang.stunde = 12; mein_intervall.anfang.minute = 30; mein_intervall.anfang.sekunde = 0; printf("Anfangszeit: %2hu:%2hu:%2hu\n\n",mein_intervall.anfang.stunde,mein_intervall.anfang.minute,mein_intervall.anfang.sekunde); do { printf("Bitte Endzeit eingeben:\n"); do { printf("\n Stunde: "); scanf("%hu",&mein_intervall.ende.stunde); if (mein_intervall.ende.stunde>23) printf("\nWert zu gross, bitte Eingabe wiederholen!\n"); } while (mein_intervall.ende.stunde>23); do { printf("\n Minute: "); scanf("%hu",&mein_intervall.ende.minute); if (mein_intervall.ende.minute>59) printf("\nWert zu gross, bitte Eingabe wiederholen!\n"); } while (mein_intervall.ende.minute>59); do { printf("\n Sekunde: "); scanf("%hu",&mein_intervall.ende.sekunde); if (mein_intervall.ende.sekunde>59) printf("\nWert zu gross, bitte Eingabe wiederholen!\n"); } while (mein_intervall.ende.sekunde>59); frueher = mein_intervall.ende.stunde < mein_intervall.anfang.stunde || ((mein_intervall.ende.stunde == mein_intervall.anfang.stunde) && (mein_intervall.ende.minute < mein_intervall.anfang.minute)) || ((mein_intervall.ende.stunde == mein_intervall.anfang.stunde) && (mein_intervall.ende.minute == mein_intervall.anfang.minute) && (mein_intervall.ende.sekunde == mein_intervall.anfang.sekunde)); if (frueher) printf("\nEndzeit darf nicht frueher als Anfangszeit sein.\nBitte Eingabe wiederholen!\n\n"); } while(frueher); printf("\nEndzeit: %2hu:%2hu:%2hu\n\n",mein_intervall.ende.stunde,mein_intervall.ende.minute,mein_intervall.ende.sekunde); return 0; }