Kyse on ohjelmasta, jossa kysytään käyttäjältä syötteenä lukujen määrä. Nämä luvut annetaan vuorotellen, esim.
Anna lukujen määrä:
3
Anna 1. luku:
2
Anna 2. luku:
3
Anna 3. luku:
5
Miten näistä luvuista saisi maksimin ja minimin laskettua? Kun laitoin perään normaalin system.out. println-jutun, tulostuu maksimiksi ja minimiksi viimeiseksi annettu luku.
Entä miten nämä luvut saisi tulostettua yhdelle riville peräkkäin sen jälkeen kun ne on syötetty koneelle?
Ohjelma pitäisi olla main-luokassa eikä mitään muita metodeja tms.
Kysymys
4
520
Vastaukset
- tonttu
java.util.Scanner in = new java.util.Scanner(System.in);
System.out.println("Anna lukujen määrä:");
int maara = in.nextInt();
int[] luvut = new int[maara];
for(int i = 0; i < maara; i )
{
System.out.println("Anna " (i 1) ". luku:");
luvut[i] = in.nextInt();
}
int max = luvut[0];
int min = luvut[0];
for(int i = 0; i < maara; i )
{
if(max < luvut[i])
max = luvut[i];
if(min > luvut[i])
min = luvut[i];
}
System.out.print("Syötetyt luvut: ");
for(int i = 0; i < maara; i )
System.out.print(luvut[i] " ");
System.out.println();
System.out.println("Maksimi: " max);
System.out.println("Minimi: " min);- sen tehtyä
mitenkään ilman taulukkoa?
- vain kolme lukua
sen tehtyä kirjoitti:
mitenkään ilman taulukkoa?
ei tullut sulle mieleen if-else valintarakenne.
Koska lukuja on vain kolme ei ole edes vaikea tehdä. Sinullahan on nyt kolme lukua; luku1, luku2, luku3.
Vertaa niiden kokoa keskenään
if(luku1>luku2 && luku1>luku3)
suurin=luku1;
if(luku2>luku1 && luku2>luku3)
suurin=luku2;
if(luku3>luku1 && luku3>luku2)
suurin=luku3;
pienimmälle sitten toistepäin.
Ihan ok tapa jos noin vähän, mutta jos numeroita olisi paljon olisi tuolla tavalla kusessa.
Siksi valintalajittelukeinot ovat parempia.
- aksjfökjasdf
--- ESIMERKKI 1 ALKAA ---
import java.util.Scanner;
public class Esimerkki {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
String luvut = "";
int minimi = 0, maksimi = 0, luku = 0;
System.out.println("Anna lukujen määrä:");
int lukuja = lukija.nextInt();
for (int i = 0; i < lukuja; i ) {
System.out.println("Anna " (i 1) " luku :");
luku = lukija.nextInt();
minimi = ((i == 0) || (luku < minimi)) ? luku : minimi;
maksimi = ((i == 0) || (luku > maksimi)) ? luku : maksimi;
luvut = luku " ";
}
System.out.println("Syötit luvut: " luvut);
System.out.println("Minimi: " minimi);
System.out.println("Maksimi: " maksimi);
}
}
--- ESIMERKKI 1 LOPPUU ---
--- ESIMERKKI 2 ALKAA ---
import java.util.Scanner;
import java.util.Vector;
public class Esimerkki {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
Vector luvut = new Vector();
System.out.println("Anna lukujen määrä:");
int lukuja = lukija.nextInt();
for (int i = 0; i < lukuja; i ) {
System.out.println("Anna " (i 1) " luku :");
luvut.add(lukija.nextInt());
}
int minimi = 0, maksimi = 0, luku = 0;
System.out.print("Syötit luvut: ");
for (int i = 0; i < lukuja; i ) {
System.out.print((luku = luvut.get(i)) " ");
minimi = ((i == 0) || (luku < minimi)) ? luku : minimi;
maksimi = ((i == 0) || (luku > maksimi)) ? luku : maksimi;
}
System.out.println("\nMinimi: " minimi);
System.out.println("Maksimi: " maksimi);
}
}
--- ESIMERKKI 2 LOPPUU ---
--- ESIMERKKI 3 ALKAA ---
import java.util.Collections;
import java.util.Scanner;
import java.util.Vector;
public class Esimerkki {
public static void main(String[] args) {
Scanner lukija = new Scanner(System.in);
Vector luvut = new Vector();
System.out.println("Anna lukujen määrä:");
int lukuja = lukija.nextInt();
for (int i = 0; i < lukuja; i ) {
System.out.println("Anna " (i 1) " luku :");
luvut.add(lukija.nextInt());
}
System.out.print("Syötit luvut: ");
for (int i : luvut)
System.out.print(i " ");
Collections.sort(luvut);
System.out.println("\nMinimi: " luvut.firstElement());
System.out.println("Maksimi: " luvut.lastElement());
}
}
--- ESIMERKKI 3 LOPPUU ---
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225404- 264657
- 282661
- 342314
- 372058
- 152008
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191637- 121571
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons241360- 151306