Invertendo os valores de um Array

2 respostas
fabiomarcilio

Boa noite pessoal, estou com dificuldades em inverter um array, ja olhei o códico várias vezes e me parece tudo certo, mas quando roda o array é gerado normalmente mas o metodo para inverter retorna 0 em todas as posições, segue o cod. abaixo, desde ja muito obrigado!!

package ManipulaArrayJava;


public class ArrayDeInteiro {
   //Atributos
    private int vetor[];
    private int vetorInv[];

   //Contrutor
    public ArrayDeInteiro(int tamanho){
        vetor=new int[tamanho];
        vetorInv=new int [tamanho];
    }
    //Metodos
    
    public void geraVetorAleatorio(){
        for (int i=0; i<vetor.length; i++){
            vetor[i]=(int)(Math.random()*10);
        }
    }

     public int somaVetor(){
        int soma = 0;
        for (int i=0; i<vetor.length; i++)
            soma = soma + vetor[i];
        return soma;
    }

    public void inverterVetor(){
        int a = 0;
        int b = vetorInv.length-1;
   
         while (0 <= b ){
            vetorInv[b] = vetor[a];
            b--;
            a++;
        }
    }

    public String dadosVetor(){
        String dados="Dados armazenados no vetor :\n";

        for (int i=0; i<vetor.length; i++){
            dados+="["+i+"]"+vetor[i]+"\n";
        }
        return dados;
    }

    public String dadosVetorInv(){

          String dados2 ="\n\nValores do vetor invertido :\n";
        for (int i=0; i<vetor.length; i++){
            dados2+="["+i+"]"+vetorInv[i]+"\n";
    }
        return dados2;
    }

   
}

2 Respostas

V

Simulei sua classe , e tive as saidas desejadas, não fiz nem uma alteração, ela está trocando os valores dos vetores normalmente e imprimindo o resultado esperado.
public class APPInveterArray {

public static void main(String[] args) {
		InveterArray inverter = new InveterArray(5);

		inverter.geraVetorAleatorio();
		int soma = inverter.somaVetor();	
		inverter.inverterVetor();

		System.out.println("Soma: " + soma);
		System.out.println(inverter.dadosVetor());
		System.out.println(inverter.dadosVetorInv());

	}
}

Soma: 20
Dados armazenados no vetor :
[0]8
[1]4
[2]3
[3]2
[4]3

Valores do vetor invertido :
[0]3
[1]2
[2]3
[3]4
[4]8

fabiomarcilio

muito estranho, fiz o teste de mesa e esta tudo certo tambem, utilizo o netbeans, ele acusa o erro apos o termino da execução, vou verificar certinho o erro e posto aqui, mas valew pela atenção!! :wink:

Criado 12 de fevereiro de 2012
Ultima resposta 13 de fev. de 2012
Respostas 2
Participantes 2