Ohjelmaan on toteutettu valmiina pohja, joka lukee käyttäjältä lukuja listalle. Syötteiden lukeminen päätetään kun käyttäjä syöttää luvun -1.
Lisää ohjelmaan toiminnallisuus, joka lukujen lukemisen jälkeen etsii listalta listan suurimman luvun ja tulostaa sen arvon. Ohjelman pitäisi toimia esimerkkisuorituksen mukaisesti.
Ota mallia allaolevasta pienintä lukua etsivästä lähdekoodista:
// oletetaan, että käytössämme on lista, jossa on kokonaislukuja
int pienin = lista.get(0);
int indeksi = 0;
while (indeksi < lista.size()) {
int luku = lista.get(indeksi);
if (pienin > luku) {
pienin = luku;
}
indeksi = indeksi + 1;
}
System.out.println("Listan pienin luku: " + pienin);
Pohja: https://github.com/swd1tn002/mooc.fi-2019-osa3/blob/master/src/tehtava09/ListanSuurinLuku.java
Example output:
Syötä kokonaislukuja listalle (-1 lopettaa):
72
2
8
93
11
-1
Listan suurin luku: 93
ListanSuurinLuku.java
/* Tässä ei ole käytetty valmista pohjaa */
import java.util.ArrayList;
import java.util.Scanner;
public class ListanSuurinLuku {
public static void main(String[] args) {
Scanner syote = new Scanner(System.in);
int i, currentNumber, suurin = 0;
ArrayList<Integer> lukulista = new ArrayList<Integer>();
System.out.println("Syötä kokonaislukuja listalle (-1 lopettaa):");
while (true) {
try {
int luku = syote.nextInt();
if (luku == -1) {
break;
}
lukulista.add(luku);
} catch (NumberFormatException e) {
errorInvalidIntegerInput();
}
}
for (i = 0; i < lukulista.size(); i++) {
currentNumber = lukulista.get(i);
if (currentNumber > suurin) {
suurin = currentNumber;
}
}
System.out.printf("Listan suurin luku: %s\n", suurin);
}
private static void errorInvalidIntegerInput() {
System.err.println("Antamasi syöte ei ole kokonaisluku");
System.exit(1);
}
}