hmol Skrevet 27. september 2009 Del Skrevet 27. september 2009 (endret) Hei Jeg sliter litt med java. Vil at programmet skal foreta tjue innlesninger av heltall og til slutt skrive ut det største og minste tallet. Jeg står fast, og trenger litt hjelp med if-else løkken. Regner med det må bli noe slik: int størst=0; int minst=0; for (int i = 1; i <= 20; i++) { int tall = <leser inn et tall fra brukeren>; if (tall > størst) { minst = størst; størst = tall; } else if (tall < minst) minst = tall; } Jeg vet at denne siste else-if delen er feil, og regner med at det er noen der ute med litt mer peil enn meg som vet hvordan jeg kan få fikset dette. Endret 27. september 2009 av hmol Lenke til kommentar
Joachricar Skrevet 27. september 2009 Del Skrevet 27. september 2009 når du får et tall som or større enn "størst", da blir jo ikek det forrige tallet som var størst minst? Lenke til kommentar
Cyberfrog Skrevet 28. september 2009 Del Skrevet 28. september 2009 Glem else if. Ha to separate if-sjekker, og ta vare på henholdsvis (nye) større og mindre tall fortløpende. Lenke til kommentar
hmol Skrevet 28. september 2009 Forfatter Del Skrevet 28. september 2009 Takker for tips. Har endret på if-løkken nå, men har fortsatt ikke fått det til. Det er nok mulig at jeg har litt problem med å forstå hvordan de ulike variablene til enhver tid oppdateres med nye verdier. Lenke til kommentar
Joachricar Skrevet 28. september 2009 Del Skrevet 28. september 2009 (endret) Hva er utskriften/problemet da? Fjernet du "minst = størst;"? Ellers, når du setter variablene støsrt og minst til 0, om da brukeren kun skriver negative tall, blir størst = 0; om han kun skriver inn tall høyere enn 0, blir minst det nest største tallet utifra løkken din, om du forandrer på den blir minst = 0; Endret 28. september 2009 av Joachricar Lenke til kommentar
LostOblivion Skrevet 28. september 2009 Del Skrevet 28. september 2009 (endret) Opprett en array og les inn 20 tall i denne, gå så gjennom arrayen og finn minste og største. Hint: int biggest = arr[0]; int smallest = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] > biggest) biggest = arr[i]; if (arr[i] < smallest) smallest = arr[i]; } Det du vil prøve å unngå i sånne oppgaver er å gi en konstant startverdi, f eks, hvis du setter en startverdi på 0 og brukeren taster inn -50, -35, og -42, så taper du jo. Endret 28. september 2009 av LostOblivion Lenke til kommentar
Cyberfrog Skrevet 28. september 2009 Del Skrevet 28. september 2009 Sant nok. Men Integer.MIN_VALUE (minste mulige int-verdi) og Integer.MAX_VALUE (største mulige int-verdi) er også konstanter. En annen mulighet er selvsagt å bare tillate tall >= 0 ved innlesing. Lenke til kommentar
Øystein T. Skrevet 29. september 2009 Del Skrevet 29. september 2009 (endret) int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for(int i = 0; i < 20; i++ ) { if( i < min ) min = i; if( i > max ) max = i; } System.out.println("Min: " + min + ", max: " + max); Dette skal gjere jobben. Endret 29. september 2009 av Øystein T. Lenke til kommentar
hmol Skrevet 29. september 2009 Forfatter Del Skrevet 29. september 2009 Takk for alle svar folkens! Har fått det til nå 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å