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...