webForumDet fria alternativet

Högsta / lägsta värdet i array

Java

5 svar · 1 599 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Hur hämtar man ut högsta respektive lägsta värdet i en array?

Ex så har talen 6, 12, 50, 66, 4, 22 och 37 slumpats fram och ska nu skriva ut dessa med en for loop och standard skall ex en variabel med namn farg ha 0. Är det lägsta talet får den värdet 1 och högsta talet får den värdet 2.

Finns det en färdig funktion för detta? Eller måste man göra en egen funktion?
Kan någon hjälpa mig med detta?

Ex kod.. kanske inte riktigt upplagd men har mer kod men är just detta jag behöver hjälp med

kod kod kod...

int[] kast = new int[7];
for (int i = 0; i < kast.length; i++){
    if (talet är högst){
        max = 2;
    }else if (talet är lägst){
        max = 1;
    }else{ //om talet är nåt annat
        max = 0;
    }
    System.out.println(max);
}
Medlem sedan aug. 20039 340 inlägg
#2
int maxval=0, minval=99999;

for (int i = 0; i < kast.length; i++){
    if (kast[i] > maxval){
        maxval = kast[i];
    }
    if (kast[i] < minval){
        minval = kast[i];
    }

}
System.out.println(minval);
System.out.println(maxval);

Så där kanske?
Du bör inte använda else i detta fall eftersom det förstör ifall det första elementet är det minsta, eftersom den andra if-satsen inte körs för det talet om du använder else.

Medlem sedan dec. 20011 860 inlägg
#3

Supertackar för det. Ska testa och återkommer om jag får problem

Medlem sedan dec. 20011 860 inlägg
#4
int maxval=0, minval=99999;

for (int i = 0; i < kast.length; i++){
    if (kast[i] > maxval){
        maxval = kast[i];
    }
    if (kast[i] < minval){
        minval = kast[i];
    }
}
System.out.println(minval);
System.out.println(maxval);

Men hur gör jag i en ifsats sen där jag skriver ut alla dessa värderna med en forloop? Av din kod får man ju ut storsta och minsta värdet men sen då?

Jag vill skriva ut alla men ha olika färg på siffrorna beroende på störst minst och alla andra talen.

Kanske jag som tänker helt fel??

for (int i = 0; i < kast.length; i++){
    if (det är störst){
        färg är blå
    }
    if (det är minst){
        färg är röd
    }
}
Medlem sedan dec. 20011 860 inlägg
#5

Så här blev det i den som skriver ut färgerna och det funkade fint :)

kast är alltså det framslumpade talet..

            if(kast==maxval){
                g.setColor(Color.RED);     
            }else if(kast==minval){
                g.setColor(Color.GREEN); 
            }else{
                g.setColor(Color.BLUE); 
            }
Medlem sedan aug. 20039 340 inlägg
#6

Japp, det är "rätt" lösning.

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)