Ir ao conteúdo

Retirada de inteiros em um vetor


Vitor Pimentel

Posts recomendados

Postado

Estou com um problema que não estou resolvendo,

que seria a retirada de inteiros de um vetor de 10 posiçoes e mostrar os numeros sem repetição.

ex:

10 2 2 10 4 6 31 4 56 5

saida

10 2 4 6 31 56 5

Se puderem me ajudar ... grato! :D

Postado
#include<iostream>

using namespace std;

int main()
{ int vetor[10];
int aux[10];
int j;

//
for(int i=0;i<10;i++)
{ cout<<"Escreva o numero desejado: ";
cin>>vetor[i];
}
cout<<"O vetor e: "<<"\n";
for(int i=0;i<10;i++)
cout<<vetor[i]<<"\t";
cout<<"\n";
for(int i=0;i<10;i++)
{ if(vetor[i]==vetor[i+1])
contador++;
}
for (int j = 0 ; j <10-contador ; j++)
aux[j] = 0;

cout<<"O novo vetor e: "<<"\n";
j=0;
for(int i=0;i<10;i++)
{ if(vetor[i]!=vetor[i+1])
{ aux[j]=vetor[i];
j++;
}
}
for(int i=0;i<=j-1;i++)
{ cout<<aux[i]<<"\t";
}
cout<<"\n"<<j;
cout<<"\n";
system("PAUSE");

}

  • Membro VIP
Postado

Fazendo bem simples, podemos conseguir uma complexidade quadrática(apuradamente da pra conseguir linear).Use 2 loops que variam de 0 até n-1(n= n elementos do vetor).

for(int i=0;i<n;i++)

{

for(int j=0;j<n;i++)

{

if(vetor==vetor[j])

{

vetor[j]=0;

}

}

}

Após isso,nos locais onde existir 0, é porque havia uma repetição.Faça outro for contando um if procurando por esses 0 e depois vá movendo os valores.Ao final, realoque o vetor, caso ele seja dinâmico.

  • Membro VIP
Postado

Há um probleminha com esse código Plateu: se o usuário inserir 0 ele será desconsiderado.:wacko: Mas isso é fácil de resolver(eu vou deixar você fazer depois, pra defender sua honra e porque estou com sono também :P).

Outra forma mais simples é verificar a cada insersão se o inteiro já existe no vetor, caso exista é só não inserir, aí depois imprime só até a posição que ficará guardada num contador(o custo fica igual ao do Plateu, mas pode ser que o código fique mais simples). Mas assim só funciona se cada elemento do vetor for inserido um por vez, caso o vetor já "esteja pronto" no código isso não vai funcionar. E esse método que sugeri não retiraria elementos do vetor, mas sim evitaria que eles fossem inseridos.

Abraço.

  • Membro VIP
Postado

Amanha cedo eu resolvo isso porque hoje to quebrado.Enquanto estiver dormindo vou tentar pensar numa solução que de complexidade linear.Abraço a todos.

Postado

Obrigado galera. Esse topico também é de meu interesse. Mais uma vez obrigado pela ajuda e mil desculpas por ter criado um tópico repetido. Abraços ! :)

Edit:

Executei o programa e ele ta guardando sempre o ultimo valor na variavel auxiliar digitado, apos digitar um valor diferente ele se perde e nao compara q ja existe.. alguem pode me ajudar a resolver esse pequeno problema? agradeço desde já. Abraços.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!