Ich habe als aufgabe die Funktion atoi selber rekusiv zu schreiben. Ich habe da mit ein Problem, vielleicht kann mir ja einer von euch sagen wo hier mein Fehler ist.
Du solltest nicht s+=1 machen, sondern my_atoirek mit (s+1) aufrufen und dir das Ergebnis des rekursiven Aufrufs auch merken. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Das mit my_atoirek(s+1) leuchtet mir ein, aber müsset ich nicht den rekursions aufruf vom ende des Strings beginnen. den so multipiziere ich ja die einer stelle mit einem fator >1?
Jepp, das ist richtig. faktor *= 10 musst du nach dem rekursiven Aufruf machen. Wobei meine Vermutung eh ist, dass du eigentlich eine Hilfsfunktion bauen sollst, die den Faktor als Parameter entgegennimmt. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe DijkstraDieser Post wurde am 28.05.2004 um 18:50 Uhr von 0xdeadbeef editiert.
Ich habe mich entschieden einen Parameter mehr der Funktion mir zu geben.Dann Funktionier es einwandfrei. Nur habe ich jetzt ja die aufgabenstellung verändert. Aber sonst fällt mir keine Lösung ein.
C++:
int my_atoirek(char *s, int len) { staticint faktor =1; int ergebnis =0;
Na, das ist doch schon mal garnicht so blöde. Jetzt pack das in ne Hilfsfunktion und du hast deine Aufgabenstellung wieder. Etwa so:
C++:
int _aux_my_atoirek(char *s, int len) { /* ... */ }
int my_atoirek(char *s) { return _aux_my_atoirek(s, strlen(s)); }
Und wenn du jetzt noch das static int faktor da raus kriegst, ist die Aufgabe wirklich rekursiv gelöst. Aber das machst du bitte noch selbst. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra