Gå til innhold

Anbefalte innlegg

Skrevet

Heisann.

 

Hvordan kan jeg finne det nest minste tallet som blir lest inn fra bruker. Jeg har kode som finner det største og det minste, men den skal også finne det nestminste (evt. bare største og nest minste).

 

import javax.swing.JOptionPane;

public class Oppgave2
{

public static void main(String[] args)
 {
 
 int største = 0;
 int minste = 0;
 
 String innlest = "";
 
 for (int i = 0; i < 10; i++)
 {
 String heltallVerdiString = JOptionPane.showInputDialog("Skriv inn et heltall");
 int heltallVerdi = Integer.parseInt(heltallVerdiString);
 
 innlest = innlest + heltallVerdiString + ", ";
 
 if (i == 0)
 {
   største = heltallVerdi;
   minste = heltallVerdi;
 }
 
 else if (heltallVerdi > største)
   største = heltallVerdi;
   
 else if (heltallVerdi < minste)
   minste = heltallVerdi;
 }
 
 JOptionPane.showMessageDialog(null, "Av tallene som ble lest inn (" + innlest + ") er \n" + største + " størst, " + minste + " minst.");
 System.exit(0);
}
}

Videoannonse
Annonse
Skrevet

else if (heltallVerdi < minste)
 nestMinste = minste; 
 minste = heltallVerdi;
}

 

Når du nå er ferdig å lese inn vil "nestMinste" inneholde tallet du ser etter.

Skrevet (endret)
else if (heltallVerdi < minste)
 nestMinste = minste; 
 minste = heltallVerdi;
}

 

Når du nå er ferdig å lese inn vil "nestMinste" inneholde tallet du ser etter.

5133858[/snapback]

 

Hva om det minste tallet blir lest inn først? Da vil

 

else if (heltallVerdi < minste)
   {
     nestMinst = minste;
     minste = heltallVerdi;
   } 

 

aldri bli utført, og nestMinst får ikke noen verdi/rett verdi.

Endret av ghettotrygve
Skrevet (endret)

Kan løses enkelt ved å sette "nesteMinste" til innlesttall dersom: "heltall > minste && nestMinsteIkkeSatt"

 

Hvor "nestMinsteIkkeSatt" er en boolskvariabel som er "true" helt til linjen "nestMinste = miste" utføres.

 

Edit: Eventuelt så kan tall nummer 2 alltid settes til nestMinste dersom det ikke er minst. Er kanskje lettere det.

Endret av mar

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...