Defo Skrevet 22. september 2013 Del Skrevet 22. september 2013 (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 22. september 2013 av Defo Lenke til kommentar
Hårek Skrevet 22. september 2013 Del Skrevet 22. september 2013 Legg tallene dine inn i et array. Sorter arrayet. Da blir det enkelt. Lenke til kommentar
Defo Skrevet 22. september 2013 Forfatter Del Skrevet 22. september 2013 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 Lenke til kommentar
Korporal Kranium Skrevet 22. september 2013 Del Skrevet 22. september 2013 Bruker du ikke da "if blabla or bla: " ? Lenke til kommentar
medlem-230551 Skrevet 22. september 2013 Del Skrevet 22. september 2013 Bruker du ikke da "if blabla or bla: " ? Man bruker if(condition) { } else if (condition) { } else { } Lenke til kommentar
Defo Skrevet 22. september 2013 Forfatter Del Skrevet 22. september 2013 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... Lenke til kommentar
Orjanp Skrevet 22. september 2013 Del Skrevet 22. september 2013 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 Lenke til kommentar
Fred7555 Skrevet 22. september 2013 Del Skrevet 22. september 2013 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå