Gå til innhold

Nest minste og nest største verdi


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet

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

  • 1 måned senere...
Skrevet

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!

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...