From d1aba291b9e5a337b84e117abc92713fc058ebe2 Mon Sep 17 00:00:00 2001 From: Bora Date: Fri, 4 Apr 2025 12:50:26 +0200 Subject: [PATCH] halo --- quersum.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/quersum.c b/quersum.c index 0b91811..38e2a2e 100644 --- a/quersum.c +++ b/quersum.c @@ -1,5 +1,19 @@ #include +// Funktion zur Berechnung der Quersumme rekursiv +int quersumme(int n) { + if (n == 0) + return 0; + return (n % 10) + quersumme(n / 10); +} + +// Funktion zum Umkehren einer Zahl rekursiv +int umkehren(int n, int reversed) { + if (n == 0) + return reversed; + return umkehren(n / 10, reversed * 10 + n % 10); +} + int main() { int number; int validInput = 0; @@ -7,31 +21,18 @@ int main() { while (!validInput) { printf("Bitte geben Sie eine Zahl ein: "); if (scanf("%d", &number) != 1) { - printf("Ungültige Eingabe. Bitte geben Sie eine gültige Zahl ein.\n"); - while (getchar() != '\n'); // Eingabepuffer leeren + printf("Ungueltige Eingabe. Bitte geben Sie eine gueltige Zahl ein.\n"); + while (getchar() != '\n'); } else { validInput = 1; } } - // Quersumme berechnen - int sum = 0; - int temp = number; // 432 - while (temp != 0) { - sum += temp % 10; // 432 43 4 - temp /= 10; // 43 4 0 - } - - // Zahl umkehren - int reversed = 0; - temp = number; // 432 - while (temp != 0) { - reversed = reversed * 10 + temp % 10; // 432 43 4 - temp /= 10; // 43 4 0 - } + int sum = quersumme(number); + int reversed = umkehren(number, 0); printf("Die Quersumme der eingegebenen Zahl ist: %d\n", sum); printf("Die umgekehrte Zahl ist: %d\n", reversed); return 0; -} +} \ No newline at end of file