C++ eliminare doppioni in un array monodimensionale
sto impazzendo nel cercare di scrivere un programma ke dato un vettore da tastiera mi elimini da questo eventuali valori presenti + di una volta. come posso fare?
Risposte
Ma lo fai man mano che l'utente inserisce (cioè se un valore è già presente non lo aggiungi) o alla fine, quando hai tutto l'array?
alla fine... dopo aver inserito l'array completo
una soluzione semplice eforse non ottimizzata e' quella di ordinare il vettore...
#include <iostream> using namespace std; int main(){ int const N=100; int a[N], b[2*N]; int n; cout<<"Quanti elementi vuoi inserire?"<<endl; cin>>n; int i; for(i=0;i<n;i++){//creo l'array da tastiera cout<<"Inserisci l'elemento di posizione "<<i+1<<endl; cin>>a[i]; } int j,chiave; for(i=1;i<n;i++){ //Ordino l'array... chiave=a[i]; j=i-1; while(j>=0&&a[j]>chiave){ a[j+1]=a[j]; j--; } a[j+1]=chiave; } int k=0; for(i=0;i<n;i++){ if(a[i]!=a[i+1]){ b[k]=a[i]; k++; } } for(i=0;i<k;i++){ cout<<b[i]<<" "; } cin>>ws; }
Forse è questo quello che cercavi..
ciaoo
grazie non avevo pensato di ordinarlo prima...