Hallo ich quäle mich seit Stunden schon damit einen Algorithmus in Umgangssprache zu schreiben der schrittweise eine Quersumme einer Zahl berechnet.
Eine Vorlage habe ich im Internet schon gefunden:
solange zahl > 0
quer = quer + Rest bei Diffision von (zahl / 10)
zahl = zahl / 10 (ganzzahlig)
programmiert schaue es laut der website so aus::
Aber ich verstehe nicht ganz wie das gehen soll
und zwar habe ich folgendes mal umganssprachlich formuliert:
Setze zahl=0, quersumme=0
SOLANGE
zahl > 0
TUE
quersumme = quersumme + Rest bei Division (Zahl/10)
zahl = zahl / 10
Ergebnis : quersumme
So in etwa steht das dort in der Musterlösung auch
Was ich daraus interpretiere:
Solange "zahl" größer ist als 0 ist wird die variable "quersumme" mit dem Rest der Division von Zahl/10 addiert.
Wenn ich 23 eingeben würde. Wäre das 0 + 3
quersumme wäre nun 3
die variable "zahl" würde nun 23/10= 2,3 sein. 3 ist gespeichert, der algoritmus fängt neu an, da 3 > 0
quersumme = 3 + Rest der Vision von (2,3/10)
ab hier komm ich nicht weiter... irgendwie muss doch in der 2.schleife eine 2 raus kommen oder nicht? und danach muss Zahl kleiner 0 werden, so dass der algorithmus aufhört und man 2+3 hat
Eine Vorlage habe ich im Internet schon gefunden:
solange zahl > 0
quer = quer + Rest bei Diffision von (zahl / 10)
zahl = zahl / 10 (ganzzahlig)
programmiert schaue es laut der website so aus::
main(void) {
int zahl=0, quer=0;
printf("Bitte Zahl eingeben : "); scanf("%d", &zahl);
while (zahl>0) {
quer += zahl % 10;
zahl /= 10;
}
printf("Die Quersumme ist %d\n", quer);
return 0;
}
Aber ich verstehe nicht ganz wie das gehen soll
und zwar habe ich folgendes mal umganssprachlich formuliert:
Setze zahl=0, quersumme=0
SOLANGE
zahl > 0
TUE
quersumme = quersumme + Rest bei Division (Zahl/10)
zahl = zahl / 10
Ergebnis : quersumme
So in etwa steht das dort in der Musterlösung auch
Was ich daraus interpretiere:
Solange "zahl" größer ist als 0 ist wird die variable "quersumme" mit dem Rest der Division von Zahl/10 addiert.
Wenn ich 23 eingeben würde. Wäre das 0 + 3
quersumme wäre nun 3
die variable "zahl" würde nun 23/10= 2,3 sein. 3 ist gespeichert, der algoritmus fängt neu an, da 3 > 0
quersumme = 3 + Rest der Vision von (2,3/10)
ab hier komm ich nicht weiter... irgendwie muss doch in der 2.schleife eine 2 raus kommen oder nicht? und danach muss Zahl kleiner 0 werden, so dass der algorithmus aufhört und man 2+3 hat