casper089 Geschrieben 23. Januar 2010 Geschrieben 23. Januar 2010 Hi, bin blutiger anfänger und komm da einfach nicht weiter, und vielleicht kann mir ja hier jemand weiterhelfen... also ich will mit eine Uhrzeittabelle ausgeben lassen, aber NUR mit einer FOR-SCHLEIFE nämlich: for (i=0; i<86400;i++) und die variablen h, m, s sollen mit modulo-operator und divisions-operator errechnet werden es soll dann wie folgt ausgegeben werden Uhrzeit 00:00:00 Uhrzeit 00:00:01 ... Uhrzeit 00:00:59 Uhrzeit 00:01:00 .. Uhrzeit 23:59:59 das was ich jetzt so hab schaut folgendermaßen aus: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int i,h,m,s; for (i=0;i<86400;i++) { printf("Uhrzeit %02d:%02d:%02d\n",i%24,i%60,i%60); } return 0; } aber er zählt zwar bist 23 und 59 aber hald leider nicht so wie ich das will!!! BIN ÜBER JEDE HILFE DANKBAR!!!!!! Gruß Nik Zitieren
casper089 Geschrieben 23. Januar 2010 Autor Geschrieben 23. Januar 2010 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int i,h,m,s; for (i=0;i<86400;i++) { h = i/3600; m = i/60; s = i; printf("Uhrzeit %02d:%02d:%02d\n",h%24,m%60,s%60); } return 0; } ist ja klar das h, m und s noch umgerechnet werden müssen... trotzdem verstehe ich nicht was dieses h%24, m%60 und s%60 wirklich bewirkt, klar ist das dieser wert nicht erreicht wird aber ganz ehrlich das war mehr zufall.... DANKE schon mal Gruß Nik Zitieren
flashpixx Geschrieben 23. Januar 2010 Geschrieben 23. Januar 2010 Du möchtest bitte das nächste Mal die Code-Tags verwenden for (i=0;i<86400;i++) 86400 Sekunden = 24 Stunden Überlege Dir bitte auf einem Blatt Papier, wie man Sekunden, in Minuten und Minuten in Stunden umrechnet. Denn das ist genau das, was Dein Programm machen muss Zitieren
casper089 Geschrieben 23. Januar 2010 Autor Geschrieben 23. Januar 2010 was sind code-tags? ja mit ist klar das 84600sec 24std sind und gleich 60*60*24... nur was macht diese modulo-operator? mit dem rest? Zitieren
flashpixx Geschrieben 23. Januar 2010 Geschrieben 23. Januar 2010 was sind code-tags? Für die korrekte Anzeige und Verfassen von Quellcodes hier im Forum [ CODE ] bzw [ / CODE ] (ohne Leerzeichen nur was macht diese modulo-operator? mit dem rest? Division mit Rest ? Wikipedia Zitieren
InfoJunkie Geschrieben 23. Januar 2010 Geschrieben 23. Januar 2010 (bearbeitet) //... for (int i = 0; i < 86400; ++i) { printf(" %5d sec = %02d:%02d:%02d\n", i, i/3600, (i/60)%60, i%60); } Modulo (a% liefert den Rest einer Division zurück. Wäre a = 3 und b = 2, dann wäre 3%2 = 1 da 3/2 = 1 mit Rest 1 ergibt. Noch eine kleine Info, damit Du den Code oben verstehst: (i/60)%60 ergibt die Minuten, weil i/60 den Wert vor dem Komma ergibt weil die Variable i als Integer - also Ganzzahl - definiert ist. (Nachkommastellen wären in diesem Fall die Sekunden...) Bei Integer-Rechnungen mit Nachkommastellen werden diese in C einfach "abgeschnitten". Diese Zahl Modulo 60 ergibt dann die eigentliche Minute, da damit der Stundenanteil eliminiert wird... Ist vielleicht ein wenig kompliziert aber wenn Du da mal in Ruhe drüber guckst, verstehst Du das schon. PS: Das da oben kommt raus, wenn du diese Code-Tags benutzt - eine formatierte Ausgabe. Bearbeitet 23. Januar 2010 von InfoJunkie Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.