C/C++ Programmierung

Aufgabe 31

Es werden Zahlen von der Tastatur eingelesen bis der Benutzer eine 0 eingibt (Abbruchkriterium). Anschließend werden die Zahlen in umgekehrter Reihenfolge wieder ausgegeben. Die zuletzt eingegebene 0 wird nicht mitgewertet-
     Bitte die Werte eingeben und mit 0 beenden:
     3 5 99 0
     99, 5, 3,

Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.

Lösung für die Aufgabe

#include <fstream.h>

// Konstante für die maximale Anzahl an Zahlen definieren
const int MAX_ZAHL = 100;

// Start des Hauptprogrammes
main()
{
  // Variablen deklarieren
  int zahl;
  int count = 0;        // Aktuelle Zahl (mit 0 initialisieren)
  int zahlen[MAX_ZAHL]; // Buffer für die Zahlen (max. MAX_ZAHL Zahlen)

  cout << "Bitte die Werte eingeben und mit 0 beenden: ";
  // Die erste Zahl einlesen
  cin >> zahl;

  // Testen ob Zahl ungleich 0 ist und weniger als MAX_ZAHL Zahlen
  // im Buffer sind
  while (zahl != 0 && count < MAX_ZAHL)
  {
    // Zahl in den Buffer schreiben
    zahlen[count] = zahl;

    // Variable für aktuelle Zahl um eins erhöhen
    count++;

    // Testen ob MAX_ZAHL Zahlen eingegeben wurden
    if (count == MAX_ZAHL)
    {
      cout << "Es können keine weiteren Zahlen eingegeben werden." << endl;
      break;
    }

    // nächste Zahl einlesen
    cin >> zahl;
  }

  // Zahlen in umgekehrter Reichenfolge ausgeben
  for (int i = count - 1; i >= 0; i--)
    cout << zahlen[i] << ", ";

  cout << endl;
}


Zurück zur Übersicht