Java - Laço For

Tenho que fazer o seguinte exercício:
Ler um vetor A com 10 elementos e construir um vetor B de mesmo tipo e tamanho e com os mesmos elementos de A, sendo que estes deverão estar invertidos, ou seja, o primeiro elemento de A passa a ser o último de B, o segundo elemento de A passa a ser o penúltimo de B e assim por diante.

Tentei fazer o programa abaixo, mas o primeiro elemento de B, que deveria ser o último de A é sempre 0, e o resto funciona normalmente. Alguém sabe qual o problema?

package com.bruno.cursojava.aula19;

import java.util.Scanner;

public class Ex28 {

public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	int A[] = new int[10];
	int B[] = new int[A.length];
	
	for (int i=0; i<10; i++) {
		System.out.println("Digite o número " + (i+1) + " da sequência do vetor A");
		A[i] = scan.nextInt(); 
	}
		System.out.println("Agora vamos imprimir os valores digitados na sequência contrária, o último número digitado será o primeiro, o penúltimo número digitado será o segundo, etc");
	for (int j=9, k=0;j>0 && k<10;) {
		B[j] = A[k];
		j--;
		k++;
	}
	for (int l=0;l<10;l++ ) {
		System.out.print(B[l] + "  ");
	}
	System.out.print(" FIM ");
}

}

1 curtida

A lógica vem decrementando 9, 8, 7, 6, 5, 4, 3, 2 e para no 1. Totalizando 9 elementos.

Acerte para:

j >= 0 

Exemplo:

import java.util.Scanner;

public class Inversor {
	public static void main(String[] args){
		Scanner leitor = new Scanner(System.in);
		int a[] = new int[10];
		int b[] = new int[a.length];
		short contador = 1;
		short j = 0;
		
		/*
		* Preencher o vetor A
		*/
		for(short i = 0; i < 10; i++){
			System.out.print("Digite o " + (contador++) + "º número: ");
			a[i] = leitor.nextInt();
		}
		
		/*
		* Preencher o vetor B
		*/
		for(short i = 9; i >= 0; i--){
			b[i] = a[j];
			
			j++;
		}
		
		System.out.println("\nResumo...");
		for(short i = 0; i < 10; i++){
			System.out.printf("A[%d] = %03d\t\tB[%d] = %03d\n", i, a[i], i, b[i]);
		}
	}
}

Rodando…

image

1 curtida