Witam serdecznie. Robię takie zadanie: * Plik tekstowy ‘tablicaDwa.txt’ ma postać:
- 3 4
- 1 2 3 4
- 5 6 7 8
- 9 0 1 2
- Pierwsza linia w pliku tekstowym to informacje o ilości odpowiednio
- wierszy i kolumn tablicy dwuwymiarowej. Kolejne wiersze w pliku to
- kolejne wiersze tablicy dwuwymiarowej. Pobierz z pliku tekstowego dane
- do tablicy dwuwymiarowej i wyznacz kolumnę o największej sumie
- elementów
public class Zad2Plik {
public static int biggestColumn(int[][] tab) {
int biggestSum = 0;
int currentSum = 0;
for (int i = 0; i < tab.length; i++) {
currentSum = 0;
for (int j = 0; j < tab[i].length; j++) {
currentSum += tab[j][i];
}
if (currentSum > biggestSum) {
biggestSum = currentSum;
}
}
return biggestSum;
}
public static void odczytTablicy2(String tablicaDwa) {
try {
FileReader fr = new FileReader(tablicaDwa);
Scanner sc = new Scanner(fr);
String[] sizeArray = sc.nextLine().split(" ");
int[][] tab = new int[Integer.parseInt(sizeArray[3])][Integer.parseInt(sizeArray[4])];
for (int i = 0; i < tab.length; i++) {
for (int j = 0; j < tab[i].length; j++) {
tab[i][j] = sc.nextInt();
}
}
System.out.println("The column of the biggest sum is " + biggestColumn(tab));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
odczytTablicy2("tablicaDwa.txt");
}
}
Napisałem ten kod który się nie kompiluje, Kompilator wywala błąd: ArrayIndexOutOfBoundsException: 3 . Podejrzewam, że coś pomieszałem z metodą licząca największą kolumnę. Również nie jestem pewien czy poprawnie odebrałem dane z pliku. Czy dobrze okresliłem z pierwszego wiersza liczbę kolumn i wierszy.
Dziękuje za pomoc. Pozdrawiam.