Poligno 1 Denunciar post Postado Março 14, 2016 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. Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 14, 2016 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){ Compartilhar este post Link para o post Compartilhar em outros sites
Poligno 1 Denunciar post Postado Março 14, 2016 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. Compartilhar este post Link para o post Compartilhar em outros sites
Poligno 1 Denunciar post Postado Março 14, 2016 [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? Compartilhar este post Link para o post Compartilhar em outros sites
macielcr7 9 Denunciar post Postado Março 14, 2016 [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... Compartilhar este post Link para o post Compartilhar em outros sites
Poligno 1 Denunciar post Postado Março 14, 2016 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! Compartilhar este post Link para o post Compartilhar em outros sites