Estou começando java e estou tentando a montar um programa para exibir vários numeros aleatórios, porém preciso apresentar qual é o menor deles… Pelo que o professor me passou e pelo que eu sei de Portugol elaborei isso:
[code]
[code]public class MenorNum {
public static void main(String [] args) {
double vetor[] = new double [14],vetor2[] = new double [14], aux=0;
int i, j=0;
for (i=0;i<vetor.length;i++)
vetor[i] = Math.random();
j=i;
vetor2[j] = vetor [i];
if (i>1)
while (vetor[i]<vetor[j-1]){
aux = vetor[i];
j=j-1;
}j=0;
System.out.print (aux);
}
}[/code]
porém quando executo exibe a seguinte mensagem:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 14
at MenorNum.main(MenorNum.java:14)
Process completed.
que eu também não entendi direito o que significa!!!
Me desculpem pelo tamanho da mensagem mais será que alguêm sabe corrigir isso???
Essa é uma exception gerada quando você tenta acessar uma posição do vetor que não existe, e no caso em algum momento seu programa acessa a posição 14 [sendo a ultima 13].
public static void main(String [] args) {
int vetor[] = new int [14];
int menorValor=0;
for (int i=0; i<vetor.length; i++) {
vetor[i] = (int)(Math.random()*10000);
if (i == 0)
menorValor = vetor[i];
else
if (vetor[i] <= menorValor)
menorValor = vetor[i];
System.out.println((i+1) + "o valor: " + vetor[i]);
}
System.out.print ("O menor valor eh: " + menorValor);
}
Cara, pense assim…:
Gere o primeiro número aleatório e guarde ele como o menor. (Oq não deixa de ser verdade, ele é o único que vc tem )
Depois, para cada número X aleatório que vc gerar, verifique se X é menor que MENOR, se for, guarde X como o menor… sacou?!
Taí a lógica, é só passar pro código…
PS.: Pra que esse vetor? Vc precisa guardar os números gerados?