Ajuda na Lógica de desse exercício

2 respostas
J

Leia um array A e um array B, ambos com N elementos e que intercale estes arrays A e B,
formando um outro array C de tamanha 2N da seguinte forma.
C[1] ← A[1]
C[2] ← B[1]
C[3] ← A[2]
C[4] ← B[2]

public class Exercicio_7 {
	public static void main(String[] args) {
		int a[] = { 1, 2, 3, 4, 5 };
		int b[] = { 10, 20, 30, 40, 50 };
		int c[] = new int[a.length + b.length];
		for (int i = 0; i < a.length; i++) {
			if(i==0){
				c[i] = a[i];
				System.out.println(c[i]);
			}
			else{
				c[i+1] = a[i];
				System.out.println(c[i]);

			}		
		}
		for (int i = 0; i < b.length; i++) {
			if(i==0){
				c[i+1] = b[i];
				System.out.println(c[i]);
			}
			else{
				c[i+1] = a[i];
				System.out.println(c[i]);

			}	
		}
		System.out.print("Array C: ");
		for (int i = 0; i < c.length; i++) {
			System.out.print(c[i] + ", ");
		}
	}

}

Sou novo no JAva e novato aqui no fórum tbm, não estou conseguindo entender a lógica desse programa!!! Se alguem puder me Ajudar!!!!

2 Respostas

Mephy

o maior problema tá entender esse for imenso…

for (int i = 0; i < c.length; i += 2){ c[i] = a[i / 2]; // primeiro: 0/2 = 0. segundo: 2/2 = 1. terceiro: 4/2 = 2. e assim vai c[i + 1] = b[i / 2]; System.out.println(c[i] + "\n" + c[i + 1]); // não entendi pra quê, mas tava no seu }

reduzido e mais funcional, usando uma simples divisão ‘-’

J

Obrigado Mephy, valeu mesmo....
Depois que parei para pensar e efetuei o teste de mesa vi como não era muito dificil, até consegui fazer mas com 2 for....
qnto ao System.out.println(c[i].... era só para ver o resultado de dentro do laço... como o debug rsrsr... Abraços!!!

veja como eu fiz!!!!

public class Exercicio_7 {
	public static void main(String[] args) {
		int a[] = { 1, 2, 3, 4, 5 };
		int b[] = { 10, 20, 30, 40, 50 };
		int c[] = new int[a.length + b.length];
		int n=0;
		for (int i = 0; i < c.length; i+=2) {
			c[i] = a[n];
			n++;
		}
		n=0;
		for (int i = 1; i < c.length; i+=2) {
			c[i] = b[n];
			n++;
		}
		System.out.print("Array C: ");
		for (int i = 0; i < c.length; i++) {
			System.out.print(c[i] + ", ");
		}
	}

}

o seu ficou bem prático... Obrigado....

Criado 13 de abril de 2011
Ultima resposta 14 de abr. de 2011
Respostas 2
Participantes 2