C/C++ Programmierung

Aufgabe 33

Es werden positive Zahlen von der Tastatur eingelesen bis der Benutzer eine 0 eingibt (Abbruchkriterium). Das Programm ermittelt, wie häufig eine bestimmte Zahl eingegeben wurde. Zahlen, die größer sind aös 99, werden ignoriert.
     Bitte die Werte eingeben und mit 0 beenden:
     3 5 5 99 1001 3 5 5 0
     Häufigkeit:
     3: 2
     5: 4
     99: 1

Es werden nur Häufigkeiten, die größer als 0 sind, ausgegeben (siehe Beispiel).

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

Lösung für die Aufgabe

#include <fstream.h>

// Start des Hauptprogrammes
main()
{
  // Variablen deklarieren
  int zahl, i;
  int zahlen[99]; // Buffer für die Zahlen

  // Alle Zahlen im Buffer auf 0 setzen
  for (i = 0; i < 99; i++)
    zahlen[i] = 0;

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

  // Testen ob Zahl ungleich 0 ist
  while (zahl != 0)
  {
    // Testen ob Zahl größer als 0 und kleiner als 100 ist
    if (zahl > 0 && zahl < 100)
    {
      // Anzahl im Buffer für die eingegebene Zahl um eins erhöhen
      zahlen[zahl - 1]++;
    }

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

  // Häufigkeiten der Zahlen ausgeben
  cout << "Häufigkeit:" << endl;

  for (i = 0; i < 99; i++)
  {
    if (zahlen[i] > 0)
      cout << i + 1 << ": " << zahlen[i] << endl;
  }
}


Zurück zur Übersicht