Hasse Collartz Problem in C

Gast #3846892
Hey,

ich soll im Rahmen meines Studiums ein Programm schreiben, das einige 
natürliche ganze Zahlen bis zu einer Obergrenße (max) hinurch läuft und 
dann im Tabellenformat ausgibt.

Allerdings bin ich in C noch recht schlecht und ich habe grad ein 
Problem bei der 3x + 1 Geschichte.

So sieht das ganze derzeit aus:

void collartz(int x)
{
  if(x % 2 == 0)
  {
    while(x != 1)
    {
      x = x / 2;
      printf("%d ", x);
    }
  }
  else
  {
    while(x != 1)
    {
      x = 3 * x + 1;
      printf("%d ", x);
    }
  }
}

Wenn ich jetzt (ich habe mal in der Wikipedia geschaut) 19 eingebe, dann 
kriege ich nicht, wie es eigentlich sein soll die Ausgabe
19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 
2, 1, …

sondern was komplettt anderes.
Den Abschnitt mit der x = 3x +1 scheint falsch zu sein aber so ist das 
doch richtig oder?
Also 3 * x + 1 und das x zuweisen?
Gast #3847034
hmm ..

ich habe doch noch ein Problem und zwar mit der Tabelle.
Wir sollen das ganze ja in der cmd ausgeben aber das sieht irgendwie 
nicht so gut aus.

Das steht in der Aufgabe:
In einer Tabelle die Zahl x, das Ergebnis der Berechnung für x
und die Anzahl der benötigten Schleifendurchläufe ausgeben.

Ich habe mal das Bild angehangen und wie das ganze derzeit aussieht.
Wie kann man das noch ordentlicher hinkriegen?
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.