Faça um programa em Java que leia um vetor A de dez posições. Em seguida, compacte o vetor, retirando os valores nulos e negativos. Armazene esse resultado no vetor B. Mostre o vetor B.
Mas qual é a dúvida?
cara sinceramento n estou conseguindo desenvolver a logica, cnsg só ate aqui e de uma prova import java.util.Scanner;
public class vetor {
public static void main (String[] args){
Scanner ler = new Scanner(System.in);
int [] = new int [10];
int i;
int aux;
for(i = 0 ; i < 10 ; i++)
{
if(a[i] == 0)
{
aux = a[i];
a[i] = a[i+1];
a[i+1] = aux;
}
}
for(i = 0 ; i < 10; i++)
{
printf("\n %d \n ",a[i]);
}
}
}
import java.util.Scanner;
public class vetor {
public static void main (String[] args){
Scanner ler = new Scanner(System.in);
int [] = new int [10];
int i;
int aux;
for(i = 0 ; i < 10 ; i++)
{
if(a[i] == 0)
{
aux = a[i];
a[i] = a[i+1];
a[i+1] = aux;
}
}
for(i = 0 ; i < 10; i++)
{
printf("\n %d \n ",a[i]);
}
}
}
//cnsg so até aqui meu 1 ano to meio perdido
Você consegue explicar o que está fazendo nesse trecho de código?
Você está simplesmente trocando as posições dos elementos, mas não faz o menor sentido, pois seu array só possui elementos com valor zero.
Tenta pensar um pouquinho,abaixo está um esqueleto pra você começar:
public class Exemplo {
public static void main(String[] args) {
Exemplo programa = new Exemplo();
programa.executar();
}
public void executar() {
Integer[] vetorA = lerVetor(10);
Integer[] vetorB = compactarVetor(vetorA);
apresentar(vetorB);
}
private Integer[] lerVetor(int quantidade) {
// aqui você cria o vetor e inicializa os valores dele
}
private Integer[] compactarVetor(Integer[] vetor) {
// aqui você compacta o vetor passado por parâmetro
}
private void apresentar(Integer[] vetor) {
// aqui você apresenta o vetor passado por parâmetro
}
}
Pelo que deu a entender, você tem uma lista com 10 elementos, onde em algumas posições você tem números positivos, outras posições números negativos e outras o valor esta nulo. Aí você tem que criar uma lógica para remover números negativos e nulos. Correto?
var vetorA=[10,-9,8,null,6,5,null,-3,2,1];
var vetorB=[];
for(var i=0;i<vetorA.length;i++){
if(vetorA[i]!=null&&vetorA[i]>=0){
vetorB.push(vetorA[i]);
}
}
console.log(vetorB);
Eu fiz o exemplo acima em JavaScript, mas a lógica é a mesma.
Eu tenho o vetorA de 10 posições com números negativos, positivos e nulos. E tenho o meu vetorB vazio. Aí é só colocar for para analizar todas as 10 posições do vetorA. E pra cada posição, eu analizo se o valor daquela posição não esta nulo e se o valor é maior que zero, já que não quero números negativos. Se sim, eu insiro o valor do vetorA daquela posição, no vetorB. No final, o vetorB não vai ter valores nulos e nem negativos.
Se você entender essa lógica, você vai facilmente conseguir escreve-la em JAVA.