Bitte die Werte eingeben und mit 0 beenden: 3 6 5 99 1001 1 5 1001, 99, 6, 5, 5, 3, 1,
Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.
#include <fstream.h> // Konstante für die maximale Anzahl an Zahlen definieren const int MAX_ZAHL = 100; // Funktion zum Vertauschen zweier Zahlen void change(int *a, int *b) { int buffer; // Buffer, der für die Vertauschung benötigt wird buffer = *a; *a = *b; *b = buffer; } // 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) { // Testen ob die Zahl positiv ist if (zahl > 0) { // 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 sortieren (Selectionsort) int max_pos, max_zahl, i, j; // Variablen deklarieren // Alle Zahlen durchlaufen for (i = 0; i < count; i++) { max_zahl = 0; max_pos = i; // Zahlen von i bis count-1 durchlaufen for (j = i; j < count; j++) { // Testen ob Zahl an Position j größer ist als max_zahl if (zahlen[j] > max_zahl) { max_zahl = zahlen[j]; max_pos = j; } } // Wenn die größte Zahl nicht die Zahl an Position i ist, dann // Zahlen vertauschen if (max_pos != i) change(&zahlen[i], &zahlen[max_pos]); } // Zahlen ausgeben for (i = 0; i < count; i++) cout << zahlen[i] << ", "; cout << endl; }