Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal,tenho que fazer um algoritmo que diga se um vetor é ou não um palíndromo.Eu usei um laço while para faze-lo,só que ele dá o seguinte erro: quando eu defino como o numero de casas do vetor um numero par,o laço while para quando sua condição é atendida,agora se eu definir como numero de casas um numero ímpar o laço while continua ,mesmo depois de sua condição ter sido atendida.
Código:
>
package javaapplication2;
import java.util.Random;
import java.util.Scanner;
public class Vetor_Palindromo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int vet[] = new int[5]; //ALTERE AQUI
int i;
for(i=0;i<vet.length;i++){
vet*=scan.nextInt();*
}
System.out.println(palindromo(vet));
}
public static boolean palindromo(int vetor[]){
int i=0,j=vetor.length;
//System.out.println(j);
int cont=0;
while(i!=j){
j--;
System.out.println("j="+j);
* if(vetor**==vetor[j]) cont++;*
System.out.println("cont="+cont);
i++;
System.out.println("i="+i);
//esses tres println foram usados para encontrar o erro
}
int aux=vetor.length/2;
* if(cont==aux) return true;*
* else return false;**Erro acusado**: *http://prntscr.com/af8j31
*PS:**Eu sei que erro está dizendo que eu estou tentando acessar uma casa inválida do vetor,porém o laço while era pra ter sido interrompido antes disso.*
>
while(i<j){
Deu certo amigo,mas eu não quero a resposta,eu quero saber por que o laço while "me obedece" quando o indice max do vetor é par mas ñ 'me obedece' quando este é ímpar.
[REPOST]
>
Deu certo amigo,mas eu não quero a resposta,eu quero saber por que o laço while "me obedece" quando o indice max do vetor é par mas ñ 'me obedece' quando este é ímpar.
Até pq "i<j" e "i!=j" é praticamente a mesma coisa,certo?
>
[REPOST]
Até pq "i<j" e "i!=j" é praticamente a mesma coisa,certo?
Não é a mesma.. coisa...
!= isso quer dizer que quando os indices.. forem iguais.. o while para...
mais como vc informou um impar e i será par o while nao tem fim...
por isso passa...
então o correto e < menor...
>
Não é a mesma.. coisa...
!= isso quer dizer que quando os indices.. forem iguais.. o while para...
mais como você informou um impar e i será par o while nao tem fim...
por isso passa...
então o correto e < menor...
verdade!
ñ tinha reparado nisso.
Valeu bruxo!
>
Boa tarde pessoal,tenho que fazer um algoritmo que diga se um vetor é ou não um palíndromo.Eu usei um laço while para faze-lo,só que ele dá o seguinte erro: quando eu defino como o numero de casas do vetor um numero par,o laço while para quando sua condição é atendida,agora se eu definir como numero de casas um numero ímpar o laço while continua ,mesmo depois de sua condição ter sido atendida.
Código:
Erro acusado: http://prntscr.com/af8j31
PS:Eu sei que erro está dizendo que eu estou tentando acessar uma casa inválida do vetor,porém o laço while era pra ter sido interrompido antes disso.
while(i<j){