int ile=tempds.length;
...
for (int i=0; i<=ile;i++){
int a=Integer.parseInt(tempds[i]);
jeśli tablica ma N elementów i jest indeksowana od zera to ostatni element do jakiego możesz się odwołać jest N-1:
w instrukcji powinno zatem być:
for (int i=0; i<ile; i++){
EDIT: doczytałem definicje błędu i tak to tu jest błąd. Definicja mówi: błąd w linii 16. Próbowano odwołać się od elementu 3 w tablicy, który jest poza jej granicami. (podałeś 3 wartości i w tablicy są one zapisane w komórkach i indeksach kolejno 0, 1, 2).
Inne uwagi:
Dlaczego jest tam użyta instrukcja ‘while’ (miała być instrukcja ‘if’)? Bo jeśli ‘while’ to przydała by się jakaś instrukcja która wpływa na warunek ‘while’ wewnątrz bloku tej instrukcji (może chodzi o linie 25, 26 ale utworzyłeś tam inną zmienną).
linie 17, 18 ? Jakaś zaszłość historyczna?
Postaraj się lepiej formatować kod. Jakieś puste linie dzielące logicznie metodę, instrukcje w osobnych liniach. Konsekwencja w tabulacji.
javaa , zapoznaj się, proszę, z tym tematem i tą stroną, a następnie - korzystając z przycisku Edytuj(na dole pierwszego posta po prawej stronie) i opcji Użyj pełnego edytora - popraw tytuł wątku tak, by mówił konkretnie o problemie. Poprawnie zatytułowany wątek zwiększa szansę na uzyskanie szybkiej pomocy. Zignorowanie tej prośby będzie skutkować przeniesieniem tematu do kosza.
Ok, poprawiłem to, szczerze, to zapomniałem o numeracji od zera, poprawiłem też kolejne błędy.
Jednak teraz występuje błąd
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error on token ";", PrimitiveType expected after this token
at temp.main(temp.java:29)
Kod wygląda teraz następująco:
import java.util.*;
public class temp {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner czyt=new Scanner (System.in);
String pierwsza=czyt.nextLine();
String [] tempds=pierwsza.split(" ");
int ile=tempds.length;
int iledni=0, maxall=0,dni0=0;
for (;ile>1;){
iledni++;
int maxd=-100,srednia=0;
for (int i=0; i<ile;i++){
int a=Integer.parseInt(tempds[i]);
int [] tempd=new int [ile];
tempd[i]=a;
srednia=srednia+a;
if (maxd<a){maxd=a;}}
System.out.println("Maksymalna temperatura dnia: "+maxd);
if(maxall<maxd){maxall=maxd;}
maxd=0;
if (srednia/ile<0){dni0++;}
pierwsza=czyt.nextLine();
[] tempds=pierwsza.split(" ");
ile=tempds.length;
}
System.out.println("Wczytanych dni: "+iledni);
System.out.println("Maksymalna temperatura: "+maxall);
System.out.println("Liczba dni ze średnią temperaturą mniejszą od zera: "+dni0);
}
}