0 Daumen
1,2k Aufrufe

Frage:

also kurz zur Aufgabe es geht darum eine Funktion zu machen die rekursiv (nicht iterativ) die Quersumme der Zahl n berechnet.

Diese Funktion wird dann später mit einer Zahl in der main Funktion aufgerufen und mit Zahlen ausprobiert.

Der Code compiliert auch ohne Fehler jedoch dürfte bei der Berechnung was nicht stimmen da z.B beim Beispiel 123 was um die 4567906 rauskommt und eigentlich ja 6 rauskommen sollte. Bin die Berechnung gefühlt 1000 mal durchgegangen hab auch einiges ausprobiert aber komm nicht drauf vll weiß wer weiter...


Code:

unsigned digit_sum(int n) {
  if(n != 0)
      return n % 10 + digit_sum(n / 10);
  else
      return 0;
}

Avatar von
da z.B beim Beispiel 123 was um die 4567906 rauskommt

Kann ich nicht nachvollziehen. Bei mir liefert dein Code das korrekte Ergebnis. Zeig mal, wie du das Ergebnis überprüft hast.

Falsche Ergebnisse liefert deine Funktion bei negativem n.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community