[quote=Ckralls][quote=Ckralls][quote=sgaothaich]Se entendi direito o que tu queres, tua condição deveria estar dentro do for.
Mas qual o erro que está retornando?[/quote]
Se eu por a condição dentro do for para cada distancia que eu digitar ele vai imprimir,e não e isso oq ue quero, quero que ele imprima, no final do programa, se o competidor vai conseguir ou não completar a maratona.
O que quero saber tb e como posso tirar a media da distancia desses postos de agua, pois creio que se eu tirar a media desses vetores eu posso fazer uma comparação final com o m(desempenho maximo do competidor) e comparando se ele consegue terminar a maratona ou não.[/quote]
Eu pensei que estava certo, mas o professor disse:
"verificar para todas as distâncias informadas, se a distância do posto seguinte
subtraída da distância anterior é menor que a distância que ele consegue correr
sem beber água. Se houver alguma distância maior, então o algoritmo termina com N, senão termina com S."
Como posso fazer isso? Tentei como esta embaixo e não consegui.
[code]
for (i=0; i < n; i++){
pi[i] = InOut.leInt("Entre com a distancia entre os postos de agua");
// somaVetor = somaVetor + pi[i];
// mediaVetor = somaVetor / n;
sub = pi[1] - pi[0];
}
if ((n >= 2 && n <= 10000))//||(somaVetor <= 42195)){
//if (mediaVetor <= m ){
if (sub <= m){
System.out.println("S");
}else{
System.out.println("N");
}
[/code][/quote]
Pessoal to quase chegando la, o cadigo abaixo esta representando o seguinte erro na linha 23(netbeans)
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at trabalho.maratona.main(maratona.java:23)
Java Result: 1"
Alguém pode me ajudar?
package trabalho;
public class maratona {
public static void main (String []args){
int n, i, m, subtra;
int pi[];
n = InOut.leInt("Por favor entre com o numero de postos de agua");//3
m = InOut.leInt("Entre com a distancia intermediaria maxima do competidor");
pi = new int[n]; //neste caso pi é um vetor com n posições => número de postos de água;
for (i=0; i < n; i++){
pi[i] = InOut.leInt("Entre com a distancia entre os postos de agua");
subtra = pi[i+1]-pi[i]; //o professor disse q era + ou - assim;
}
if ((n >= 2 && n <= 10000)||(m <= 42195)){
if ( subtra <= m){
System.out.println("S");
}else{
System.out.println("N");
}
}
}
}