Gå til innhold

Nest minste og nest største verdi


Anbefalte innlegg

Hei!

OBS! Jeg er veldig fersk i Java og programmering forøvrig.

Sitter og jobber med en oppgave hvor jeg har et program som genererer tilfeldige tall fra 0 - 100. 100 ganger. Ut av disse plukker jeg ut største og minste verdi med metoden Math.max og Math.min.

 

Hvordan kan jeg enkelt plukke ut nest største og nest minste verdi?

Klar over at jeg kan bruke Array, men ønsker å gjøre det på den tungvindte måten...

 

Her er løkka som generer verdiene og plukker ut størst og minst:

 

while (teller <= 100)

{

 

random = (Math.random() * 100);

 

max = Math.max(random, max);

min = Math.min(random, min);

 

output +="n" + toDesimal.format(random);

 

snitt += random; // kan se bort fra denne nå

 

teller++;

 

} // end while

Lenke til kommentar
Videoannonse
Annonse

Du kan benytte to variabler til, f.eks. almostMax, almostMin for de nest største verdiene. Etter sjekken for maks og min verdier kan du legge kode som ligner på:

 

if (random > almostMax & random < max) {

/* Dersom random er større enn det nest største tallet vi har OG mindre enn det største tallet, har vi ett nytt nest største tall */

almostMax = random;

}

 

og en tilsvarende kodebit (men med andre variabelnavn og noen endringer i >,< tegnene) for å finne nest minste tallet.

 

Variablene almostMax og almostMin må initialiseres rett for at dette skal virke.

 

Lykke til!

CPL

Lenke til kommentar
  • 1 måned senere...

Denne koden fungerer (endringer er gjort med blå bokstaver):

 

int min = 100, max = 0, nestStorst = 0, previousMax;

 

while (teller <= 100) {

 

random = (int) (Math.random() * 100);

 

previousMax = max;

 

max = Math.max(random, max);

min = Math.min(random, min);

 

if(min > nestStorst)

nestStorst = min;

else if(random > nestStorst){

nestStorst = random;

if (random >= previousMax)

nestStorst = previousMax;

}

 

System.out.println("Nest Storst: " + nestStorst);

 

teller++;

} // end while

 

 

Lykke til Coo7pega!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...