
Zitat von
Arvenius
Also das mit dem Prüfen mache ich im Normalfall auch, indem ich die einzelnen Arrays abfrage.
Damit kannst du aber nicht erkennen ob wirklich etwas eingelesen wurde. Zumal du das Array nicht initialisiert hast und somit zufällige Werte drin stehen.

Zitat von
Arvenius
Allerdings wird der Code ein wenig zu unübersichtlich wenn ich das hier posten würde, deshalb beschränke ich mich hier aufs eigentliche Problem.
Das mit der Zahl versteh ich nicht. Ich lese doch bei char einzelne Ziffern ins Arrays ein oder nicht? Da habe ich sie ja quasi schon zerlegt (was im ersten Teil ja auch super funktioniert hat, das Problem liegt ja eher an der Schleife).
Ja, aber wenn du es als Zahl einliest sparst du dir die Überprüfung ob der Benutzer auch wirklich eine Zahl eingeben hat.
Und in der Regel berechnet man die Quersumme einer Zahl mit Hilfe der Ganzzahldivision mit Rest.
Um eine Schleife zu bauen, brauchst du dann nur 2 einfache Regeln:
1. Quersumme von 0 ist 0.
2. anderenfalls, Quersumme = Quersumme von zahl / 10 + zahl % 10.
Gruß
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Zitat von
Arvenius
Irgendwas stimmt aber doch an deiner Erklärung nicht. Es macht doch keinen Sinn eine Quersumme zu berechnen, indem ich die Quersumme benutze... Das wäre doch doppelt gemoppelt...
Doch, es macht sehr viel Sinn. Diese Art von (rekursiver) Definition ist auch in der Mathematik durchaus üblich (Stichwort Folgen).
Um die Quersumme von 1234 zu berechnen:
Quersumme(1234) = Quersumme(1234 / 10) + 1234 % 10 = Quersumme(123) + 4
Quersumme(123) = Quersumme(12) + 3
Quersumme(12) = Quersumme(1) + 2
Quersumme(1) = Quersumme(0) + 1
Quersumme(0) = 0

Zitat von
Arvenius
außerdem les ich deinen Text so:
(Quersumme der Zahl 1234 geteilt durch 10 = 1) + (zahl % 10 = 4) = 5...
5 ist aber nicht die dezimale Quersumme von 1234 sondern 10.
Vielleicht hab ich dich auch gänzlich falsch verstanden!?
Allerdings.
Wie man es in C iterativ implementieren kann, hat sheel ja bereits verraten. Man kann noch etwas optimieren, indem man die Bedingung etwas anpasst:
1. Quersumme einer Zahl n ist gleich n, falls 0 <= n < 10
2. anderenfalls (n > 10), wie oben
Gruß
Geändert von deepthroat (20.07.11 um 09:56 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.