From 16fb046f54575bfb8b4d7bca30aeb415e2b7cbd2 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 31 Mar 2025 19:22:03 +0200 Subject: [PATCH] 22.5.2 --- quersum.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 quersum.c 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); + }