Programa de inversão de matriz em metodo iterativo

1 resposta
A

Tenho que passar para metodo iterativo esse programa mas não sei mto…

Construa um método iterativo que inverta um vetor de inteiros. O arranjo deverá ser enviado ao método e, após a sua execução, os seus valores devem estar na forma inversa.
Testar o método acima a partir do método main().

public class InverteVetor { public static void main ( String args[] ){ Scanner sc = new Scanner (System.in); int vet[]; System.out.println("Digite o tamanho do vetor: "); int tam = sc.nextInt(); vet = new int [tam]; le (vet); imprime (vet); int i=0; [b]int f=vet.length -1;[/b] inverte (vet, i, f ); imprime (vet); } public static void le (int[] vet){ Scanner sc = new Scanner (System.in); for (int i=0; i<vet.length; i++){ System.out.println("Digite o " + (i+1) + " valor "); vet[i]=sc.nextInt(); } } public static void imprime (int [] vet){ for (int i=0; i<vet.length; i++){ System.out.print(vet[i]+ " "); } System.out.println(); } public static int[] inverte( int[] v, int i, int f ){ int aux; if ( i >= f ){ return v; } else{ aux = v[i]; v[i] = v[f]; v[f] = aux; return inverte(v, i+1, f-1); } } }

1 Resposta

S

Opa

basicamente usa a mesma lógica deste código, só muda ao invés de recursão
usa laços iterativos, o "for" nesse caso.

abaixo exemplo

public static void inverteIterativo(int[] vet) {
    int pos = vet.length - 1;
    for (int i = 0; i < pos; i++) {
        int aux;
        aux = vet[i];
        vet[i] = vet[pos];
        vet[pos] = aux;
        pos--;
        imprime(vet);
    }
}
Criado 27 de novembro de 2016
Ultima resposta 30 de nov. de 2016
Respostas 1
Participantes 2