This commit is contained in:
Bora Zuenbuelkoek 2025-04-04 12:50:26 +02:00
parent 8354212d4f
commit d1aba291b9

View File

@ -1,5 +1,19 @@
#include <stdio.h> #include <stdio.h>
// 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 main() {
int number; int number;
int validInput = 0; int validInput = 0;
@ -7,28 +21,15 @@ int main() {
while (!validInput) { while (!validInput) {
printf("Bitte geben Sie eine Zahl ein: "); printf("Bitte geben Sie eine Zahl ein: ");
if (scanf("%d", &number) != 1) { if (scanf("%d", &number) != 1) {
printf("Ungültige Eingabe. Bitte geben Sie eine gültige Zahl ein.\n"); printf("Ungueltige Eingabe. Bitte geben Sie eine gueltige Zahl ein.\n");
while (getchar() != '\n'); // Eingabepuffer leeren while (getchar() != '\n');
} else { } else {
validInput = 1; validInput = 1;
} }
} }
// Quersumme berechnen int sum = quersumme(number);
int sum = 0; int reversed = umkehren(number, 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
}
printf("Die Quersumme der eingegebenen Zahl ist: %d\n", sum); printf("Die Quersumme der eingegebenen Zahl ist: %d\n", sum);
printf("Die umgekehrte Zahl ist: %d\n", reversed); printf("Die umgekehrte Zahl ist: %d\n", reversed);