0 Daumen
520 Aufrufe

Frage:

Erstellen Sie ein C-Programm, welches eine Zifferntreppe mit der Höhe height auf der Standardausgabe ausgibt. Die Formatierung der Ausgabe ist von den Beispielausgaben zu entnehmen. Die Ganzzahl (int) height wird von dem*der Benutzer*in eingelesen. Sofern die Höhe negativ ist, wird eine Fehlermeldung ausgegeben und das Programm nicht erfolgreich beendet. Für diese Fehlerausgabe gibt es keine Vorgaben bezüglich des Inhaltes und der Formatierung.

Beispiele
Beispiel 1: Programmablauf bei der Eingabe height = 2. Die Zahl 2 in der ersten Zeile der Beispielausgabe wurde durch den*die Benutzer*in eingegeben und soll nicht von Ihrem Programm ausgegeben werden.

height: 2

1
1 2
Beispiel 2: Programmablauf bei der Eingabe height = 4. Die Zahl 4 in der ersten Zeile der Beispielausgabe wurde durch den*die Benutzer*in eingegeben und soll nicht von Ihrem Programm ausgegeben werden.

height: 4

1
1 2
1 2 3
1 2 3 4
Beispiel 3: Programmablauf bei der Eingabe height = 12. Die Zahl 12 in der ersten Zeile der Beispielausgabe wurde durch den*die Benutzer*in eingegeben und soll nicht von Ihrem Programm ausgegeben werden.

height: 12

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 910
1 2 3 4 5 6 7 8 91011
1 2 3 4 5 6 7 8 9101112
Hinweise
Halten Sie sich genau an das Format der Beispiele und geben Sie keine weiteren Texte aus!
Geben Sie die Zahlen mit einer Mindestbreite von zwei Stellen aus. Sofern die ausgegebene Zahl weniger als diese zwei Stellen aufweist, werden von links Leerzeichen eingefügt.


Code:

also die Zahlentreppe funktioniert grundsätzlich, jedoch werden bei einer Höhe über 9 nicht diese komischen Zahlen ausgegeben wodurch mir mein Programm als falsch gewertet werden wird. Ich hoffe es kann wer helfen.

#include <stdio.h>
#include <stdlib.h>

int main(void) {

int height;
scanf("%d", &height);
printf("height:");

for(int stufe = 0; stufe <= height; stufe++)
{
  for(int zahl = 1; zahl <= stufe; zahl++)
  if (zahl >= 0 && zahl <= 9)

  { printf(" %d", zahl);
  }
  printf("\n");
}
return EXIT_SUCCESS;
}

Avatar von

1 Antwort

0 Daumen
jedoch werden bei einer Höhe über 9 nicht diese komischen Zahlen ausgegeben

Das liegt daran, dass du zwar angegeben hast, was in dem Fall zahl >= 0 && zahl <= 9 passieren soll, aber nicht angegeben hast was ansonsten passieren soll.

Übrigens, der Ausdruck

    printf("%2d", zahl);

gibt zahl "mit einer Mindestbreite von zwei Stellen aus. Sofern die ausgegebene Zahl weniger als diese zwei Stellen aufweist, werden von links Leerzeichen eingefügt."

Dann kannst du dir das if sparen.

Avatar von 5,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community