Quellcode für Größte kleinste zahl- C++

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.


CaroAs  10.05.2011, 16:08

Geschickter bzw. eleganter ist es sich den Array-Index der bisher kleinsten und größten Zahl zu merken anstatt die Zahl selbst

0
Commodore64  12.05.2011, 07:59
@CaroAs

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!

0

du kannst ja versuchen das array zu sortieren Aufsteigend absteigend und jedesmal nur den 1. Wert ausgeben lassen (0)


CaroAs  10.05.2011, 16:12

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.

0
JohnySlate  10.05.2011, 16:20
@CaroAs

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.

0