Witam jestem początkujący w programowaniu, napisałem program sortowania bąbelkowego według schematu blokowego podanego na lekcji przez nauczyciela. Oto on:
import java.util.Scanner;
public class Babelkowe {
public static void main(String[] args) {
int a,k,tmp,i,element;
boolean posortowane;
k=1;
//Ilosc komorek
System.out.println("Podaj ilosc komorek tablicy : ");
Scanner odczyt = new Scanner(System.in);
a = odczyt. nextInt();
//Zakladanie tablicy
int[]tab=new int[a];
//Wypelnianie tablicy
for (i=0; i<a; i++)
{
System.out.println("Podaj "+k+" komorke tablicy: ");
k++;
tab[i] = odczyt. nextInt();
}
//Sortowanie
do
{
posortowane=true;
i=1;
do
{
if (tab[i]>tab[i+1])
{
posortowane=false;
tmp = tab[i];
tab[i]=tab[i+1];
tab[i+1]=tmp;
i=i+1;
}
else
{
i=i+1;
}
}
while(i<a);
}
while (posortowane!=true);
//Wypisanie
for(i= 0 ; i<a; i++)
{
System.out.println("Posortowane liczby :"+ tab[i]);
}
}}
Program się kompiluje oraz uruchamia po wprowadzeniu ilości komórek tablicy oraz wypełnieniu ich otrzymuję następujący komunikat:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Babelkowe.main(Babelkowe.java:41)
Pomóżcie :<