Quersumme einer 11-stelligen Zahl
-
Hallo, ich möchte die Quersumme einer 11-stelligen Zahl berrechnen und habe dafür diesen Code aufgestellt:
#include <stdio.h>
#include <stdlib.h>int main()
{
long long int zahl=0, summe=0;
printf("Gib eine Zahl ein: "); scanf("%u",&zahl);
while (zahl>0)
{
summe+=zahl%10;
zahl/=10;
}
printf("Die Quersumme ist: %u \n", summe);
system("PAUSE");
return 0;
}Das funktioniert leider nur so lange, wie die Zahl nicht mehr als 10 Ziffern hat. Danach wird das Ergebnis falsch. Warum ist das so? Und wie kann ich das beheben? Danke
-
Warum so umständlich? Lies doch lieber einen String ein und hangele dich dann Zeichen für Zeichen weiter.
-
Hmm das kann ich noch nicht, ich bin noch dabei, das zu lernen...
Kann man nicht an meinem Code was verändern, damit das funktioniert?
-
hohoho schrieb:
long long int zahl=0, summe=0; printf("Gib eine Zahl ein: "); scanf("%u",&zahl);
%u ist für unsigned int. Lies nochmal nach, welchen Formatspezifizierer man bei scanf für long long angeben muss.
-
Ahh "%lld"... Jetzt funktioniert es auch. Danke