diff --git a/quersum.c b/quersum.c new file mode 100644 index 0000000..d71f600 --- /dev/null +++ b/quersum.c @@ -0,0 +1,29 @@ +#include + +int quersum(int zahl, int qsumme) { + + if (zahl != 0) { + qsumme += zahl % 10;//Nimm die rechteste Zahl als einzelne Zahl und addiert auf qsumme + zahl = zahl / 10;//verschiebt Komma einmal nach links damit nächste Zahl auf qsumme addiert werden kann + quersum(zahl, qsumme); + } else + return qsumme; +} + +void reverse(int zahl) { + if (zahl != 0) { //Abbruchbedingung + printf("%d", zahl % 10); //Nimmt die letzte Ziffer und gibt sie aus. + reverse(zahl /10); //Rekursion: Teilt duch 10, damit die vorletzte Ziffer der Ursprungszahl die neue letzt Ziffer wird + } +} + + int main(void) { + int eingabe = 0; + int qsumme = 0; + + printf("Gib eine Zahl ein:"); + scanf("%d", &eingabe); + printf("----Quersumme: %d\n",quersum(eingabe, qsumme)); //da Funktion einen Return Wert hat wird sie hier aufgerufen + printf("----umgedreht: "); + reverse(eingabe); + }