Hejka. Chciałabym się Was poradzić, co jest nie tak w obecnym programie, w którym nie ma błędów w kodzie, a mimo to podczas wyświetlania pojawiają się komunikaty na czerwono?
Programik wygląda tak:
import java.util.Scanner;
public class Tablica
{
int size;
int tab [] = new int [size];
public Tablica(int size)
{
this.size=size;
}
public void rozmiarTablicy()
{
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj rozmiar tablicy: ");
size=scanner.nextInt();
}
public void ustawLiczby()
{
tab = new int [size];
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj " + size + " liczb(y) do wpisania do tablicy: ");
for(int i=0; i<tab.length; i++)
{
tab[i]=scanner.nextInt();
}
System.out.println("");
scanner.close();
}
public void zapisaneLiczby()
{
System.out.print("Zapisane liczby to: ");
for(int i=0; i<tab.length; i++)
{
System.out.print(tab[i]+"|");
}
System.out.println("");
}
public void srednia()
{
float sum=0;
float srednia=0;
for(int i=0; i<tab.length; i++)
{
sum+=tab[i];
srednia=sum/size;
}
System.out.print("Suma to: " + sum + "\n");
System.out.print("Średnia to: " + srednia + "\n" );
}
public void znajdzMinMaxElement()
{
/*find max*/
int max=0;
int min=2147483647;
for(int i=0; i<tab.length; i++)
{
if (max<tab[i]) //maksymalny element
{
max=tab[i];
}
if(min>tab[i]) //minimalny element
{
min=tab[i];
}
}
System.out.print("Największy element to: " + max + "\n");
System.out.print("Najmniejszy element to:" + min + "\n");
}
public void nowyRozmiar()
{ Scanner scanner = new Scanner(System.in);
System.out.print("Podaj nowy rozmiar tablicy: ");
size=scanner.nextInt();
int tab [] = new int [size];
scanner.close();
System.out.print("Nowa długość tablicy to: "+ tab.length);
}
}
public class Wywolanie
{
public static void main(String[] args) {
Tablica tablica = new Tablica(1);
tablica.rozmiarTablicy();
tablica.ustawLiczby();
tablica.zapisaneLiczby();
tablica.srednia();
tablica.znajdzMinMaxElement();
tablica.nowyRozmiar();
}
}
A błędy wyglądają tak:
Podaj rozmiar tablicy: 2
Podaj 2 liczb(y) do wpisania do tablicy: 3
2
Zapisane liczby to: 3|2|
Suma to: 5.0
Średnia to: 2.5
Największy element to: 3
Najmniejszy element to:2
Podaj nowy rozmiar tablicy: Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Tablica.nowyRozmiar(Tablica.java:85)
at Wywolanie.main(Wywolanie.java:12)
Byłabym ogromnie wdzięczna za skorygowanie mojego błędu. :)