Gå til innhold

[Løst] If-setning for det minste og nest minste tallet


Anbefalte innlegg

Skrevet (endret)

Hei!

 

Jeg forsøker å finne det minste og nest minste tallet av en tallrekke på 100 tall ved hjelp av en if-setning, men kommer ikke på noe logisk argument å putte i if-setningen for å få dette til... Hjelp? :)

import javax.swing.*;
public class Test2
{
	public static void main(String[] args) 
	{
		JTextArea tekst = new JTextArea();
		
		int tall = 0; 
		int minst = 0;
		int nestMinst = 0; 
		int nestStørst = 0;
		int størst = 0;
		
		for (int x = 1; x <= 100; x++)
		{
			tall = (int) (Math.random() * 100); 
			tekst.append(tall + "\t");
			
			if(x % 10 == 0)
			   tekst.append("\n");
			
			if (tall > størst) størst = tall; 
			if (tall > nestStørst && tall < størst) nestStørst = tall; 
			
		}
		
		tekst.append("\nDet største tallet er: " + størst);
		tekst.append("\nDet nest største tallet er: " + nestStørst);
		
		JOptionPane.showMessageDialog(null, tekst);
	}
}

Endret av Defo
Videoannonse
Annonse
Skrevet

Legg tallene dine inn i et array. Sorter arrayet. Da blir det enkelt.

 

Har ikke lært om array'er enda, så det må gjøres ved hjelp av en if-setning :hmm:

Skrevet

Vet hvordan if setninger fungerer, men problemet er å finne det logiske argumentet som lagrer det minste tallet generert i for-løkken, og lagrer dette i variabelen "minst".

 

Å finne det største og nest største tallet var ikke noe problem, da jeg kan bruke følgende kode for dette:

if (tall > størst) størst = tall; 
if (tall > nestStørst && tall < størst) nestStørst = tall; 

Men vet ikke hvordan jeg kan få dette til med det minste og nest minste tallet...

Skrevet

Du gjør det bare omvent.

 

 

if number smaller than small, then small is number
 
if number bigger than small and smaller than secondsmall, then secondsmall is number
Skrevet

Kan være greit å sette minst og nestMinst til INTEGER.MAX_VALUE.

Om de blir initialisert som 0, så vil de alltid bli 0 uansett hvilket tall for-løkken genererer (sett at den genererer positive tall som du gjør).

 

Etter det så kan du gjøre omvendt som med størst og nestStørst, som vist posten ovenfor.

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