Zweit größtes Element eines Arrays ausgeben in C

Aufrufe: 2130     Aktiv: 31.03.2020 um 06:13

1

Wollte fragen ob jemand den C Code zu dieser Aufgabe kennt, vielen Dank ^^enter image description here

Diese Frage melden
gefragt

Student, Punkte: 45

 
Kommentar schreiben
4 Antworten
0

Hi!

vielleicht hilft dir dieser Ansatz hier: Du kannst erstmal probieren das größte Element zu bekommen. Das sollte relativ einfach sein.

  1. Definiere einfach eine temporäre Variable mit einem sehr kleinen Wert (bspw. first)
  2. Du gehst durch das Array durch
  3. Guck, ob das Element im Array größer ist als die temporäre Variable. Falls, dass der Fall ist setzt du die temporäre Variable auf das Element im Array.

Und genau so bekommst du das größte Element im Array raus.

Jetzt kannst du diesen Ansatz nehmen und erweitern. Du kannst jetzt ganz einfach eine 2. temporäre Variable definieren (bspw. second). Als 4. Schritt wäre hier eine else if Bedingung zu definieren und hier zu überprüfen, ob das Element im Array größer als die 2. temporäre Variable ist und nicht die erste temporäre Variable ist. Falls das der Fall ist, ist dies deine zweit größte Variable.

Hoffe das hilft dir weiter! :)

Diese Antwort melden
geantwortet

Student, Punkte: 175

 

Ich versteh das nicht :c

  ─   unknown 24.01.2020 um 06:10

Mit Lösungsweg könnte ich das besser nachvollziehen

  ─   unknown 24.01.2020 um 21:56

Kommentar schreiben

0

So läuft es. Ich hoffe du kannst es nachvollziehen. Versuch das nächste mal selbst nen bisschen zu knobeln noch. Die Logik dahinter ist an sich nicht schwer.

int main(){

float numbers [] = {8.8, 8.0, 4.9, 1.4, 9.7, 6.3, 3.3, 8.3};

int i = 0;
int j = 0;
float biggest_number = 0;
float second_biggest_number = 0;

for(i; i<8; i++){
    if(numbers[i] > biggest_number){
        biggest_number = numbers[i];
    }
}

for (j; j<8; j++){
    if(numbers[j] < biggest_number){
        if(numbers[j] > second_biggest_number){
            second_biggest_number = numbers[j];
        }
    }
}

printf("%.2f", second_biggest_number);

return 0;

}

Diese Antwort melden
geantwortet

Punkte: 20

 

Kommentar schreiben

0

WHS?

Diese Antwort melden
geantwortet

Punkte: 10

 

Kommentar schreiben

0

Man könnte die Werte noch sortieren. Dann kann man nach allen möglichen Werten fragen.. Gruß jobe.

Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben