Größtes Element und deren Index eines Array bestimmen.
-
Hallo,
ich bin am verzweifeln, versuche schon seid Stunden einen Algorithmus zu programmieren der mir das größte Element und den Index dieses Elements liefert. Das Array besteht höchtens aus vier Elementen, für zwei ist es kein Problem, aber für mehr...
Gibt es dafür nicht schon was vorgefertigtes? Aus der STL hab ich die Funktion *max_element(); gefunden, diese liefert mir aber nur das größte Element, ohne zu wissen an welchem Index dieses Element steht.
Für Tipps und Anregungen bin ich sehr dankbar!
Grüße
ToH
-
size_t get_max_pos( int *array, size_t size ) { int max = array[ 0 ]; size_t pos = 0; for( size_t i = 0; i < size; ++i ) { if( array[ i ] > max ) { max = array[ i ]; pos = i; } } return pos; }
...gibt dir die Position des größten Elements eines Arrays aus Integern zurück.
Greetz, Swordfish
-
toh schrieb:
Hallo,
ich bin am verzweifeln, versuche schon seid Stunden einen Algorithmus zu programmieren der mir das größte Element und den Index dieses Elements liefert. Das Array besteht höchtens aus vier Elementen, für zwei ist es kein Problem, aber für mehr...
Gibt es dafür nicht schon was vorgefertigtes? Aus der STL hab ich die Funktion *max_element(); gefunden, diese liefert mir aber nur das größte Element, ohne zu wissen an welchem Index dieses Element steht.
Für Tipps und Anregungen bin ich sehr dankbar!
Grüße
ToHNun ja, das ist eine for schleife, ein if und zwei temporäre Variablen, da solltest du schon noch selbst draufkommen!
-
int Element=Array[0], Index=0, MAX_ELEMENT_ANZ=4; for(int Array_index=0;Array_index<MAX_ELEMENT_ANZ;Array_index++){ if(Array[Array_index]>Element) Element=Array[Array_index]; Index=Array_index; } }
EDIT: Mist...zu langsam
-
const int f[] = { 3, 2, 6, 4 }; const int* z = max_element(f, f + 4); cout << "Größtes Element " << *z << " und Index " << (z - f);
-
@Gast25250: Solche Posts kannst dir sparen
@Kuldren: Ätsch!
@Artchi: Mann bin ich einfallslosGreetz, Swordfish