[C] Hilfe bei Aufgabe

rookie

Erfahrenes Mitglied
Der Benutzer kann "Ja" oder "Nein" in großen oder kleinen Anfangsbuchstaben eingeben. Alle anderen Eingaben werden als fehlerhaft gemeldet und müssen wiederholt werden. Die Fehlermeldung erlischt nach wenigen Sekunden.

Wird "Ja" gewählt, beginnt das Programm wieder mit 1., bei "Nein" wird es beendet.
Schreiben Sie u.a. eine allgemeingültige Funktion "zerlege_zahl", die eine beliebige mehrstellige Zahl des Zehnersystems in ihre einzelnen Ziffern zerlegt und diese dem Hauptprogramm zur Verfügung stellt.

Das ist eine Aufgabe in meinem Datenverarbeitungsunterricht, wie kann ich diese lösen ? Ich krieg das nicht hin.

Danke
 
Der erste Teil: toupper()/tolower() helfen dir wenn du nicht auf alle möglichen Schreibweisen prüfen möchtest.

zweiter Teil: Zuerst mal solltest du rausfinden, wieviele Stellen deine Zahl hat. Ist sie grösser als 10? Als 100? Oder vielleicht sogar 1000? Da gibts doch eine gewisse Regelmässigkeit...
Dann sollte man noch wissen, was der Modulo-OP macht. Was kommt bei 234%100 raus? Und wenn man Ausgangszahlen und Ergebnis in Verbindung zueinander bringt, könnte man dann etwas daraus machen?
 
danke für den tipp,

und wie bekomme ich es hin, dass die Fehlermeldung nach wenigen Sekunden verschwindet ?
 
Schlechte Lösung: den Rechner einfach ein paar mal bis $grosseZahl zählen lassen.

Besserer Ansatz:
#include <time.h>
2 clock_t - Variablen besorgen, die Erste über clock() mit der Endzeit füllen, in die 2. kommt die aktuelle Zeit - wenn Endzeit kleiner als die Aktuelle ist gehts weiter
(man könnte während der zugehörigen Warteschleife auch hin und wieder schauen ob eine Taste gedrückt wurde) (CLOCKS_PER_SEC ist ne interessante Konstante)

2 time_t mit time() füllen und difftime() kann man auch nehmen



(Immer davon ausgehend, dass du keine Threads verwendest.)
 

Neue Beiträge

Zurück