Quellcode für Größte kleinste zahl- C++
hallo ich lerne gerade C++
und bin auf folgende aufgabe gestoßen:
Entwickeln Sie eine C++-Anwendung, die die kleinste und größte Zahl von vier vorgegebenen Zahlen ermittelt, die in einem Array vom Typ int gespeichert sind. Das Programm soll auf den Bildschirm die größte und die kleinste Zahl aus dem Array ausgeben. Testen Sie Ihr Programm, indem Sie im Array verschiedene Zahlen speichern und die größte und kleinste Zahl sich jeweils an verschiedenen Stellen im Array befindet.
so wir haben bisher nur variablen strings alle operatoren
und kontrollstrukturen sprich while-schleife for-schleife do-while-schleife if-else
daruas sollte der code bestehen
kann mir den einer posten :)
3 Antworten
#include
using namespace std;
int main(){
int zahlen[5]={1,2,3,4,5};
int klein = 0;
int gross = 0;
for(int x = 0; x
Das ist einfach. Man legt zwei Hilfsvariablen an und weist denen je den Wert aus der ersten Stelle des Arrays zu.
Dann geht es in eine Schleife die alle Stellen des Arrays abklappert. Bei jeder STelle prüft man ob die Zahl im Array kleiner ist als die Variable in der man sich "kleiner" merkt und ob diese Zahl größer ist als die Variable in der man sich "größer" merkt. Ist die Bedingung erfüllt, weist man der entsprechenden Variable den neuen Wert zu.
Am Ende einfach nur noch die beiden Variablen ausgeben.
Geht auch, aber man braucht immer noch die Variablen um sich den Index zu merken und muss dann bei jeder Prüfung über Umwege (heraussuchen der Zahl über Index).
Den Index zu merken ist zwar eleganter, aber wenn einen die Position nicht interessiert, dann ist es schneller das über den konkreten Wert zu machen.
Das muss man dann im Einzelfall entscheiden ob mal elegant programmiert haben will oder Rechenleistung sparen will. Hat das Array millionen oder gar milliarden Einträge, so ist die Methode sich rein den Wert zu merken deutlich schneller!
du kannst ja versuchen das array zu sortieren Aufsteigend absteigend und jedesmal nur den 1. Wert ausgeben lassen (0)
Der Sortieraufwand steht dabei in keinem Verhältnis mit der Aufgabe, 2 Zahlen aus dem Array zu suchen. Fürs Sortieren brauchst Du mindestens O (n * log(n) ) während Du für das Suchen des Minumums und Maximums nur O(n) brauchst.
war ja nur ein vorschlag, unbeachtet des aufwandes.
und was haltet ihr von foreach? an stelle for.
2 verschachtetlte foreach mit zwei ifs und den oben genanten Variablen.
Geschickter bzw. eleganter ist es sich den Array-Index der bisher kleinsten und größten Zahl zu merken anstatt die Zahl selbst