Voglio creare una funzione che emetta i valori distinti in un determinato array. Ad esempio, nella seguente sequenza 2 2 1 1 5 2, le cifre distinte sono 2 1 5. Quello che ho fatto fino ad ora è:
void Distinct(int a[], int b[], int n){
int i; //n is the number of elements for a and b
int k=0; //a is the original array
int ac;
b[0] = a[0];
for (i = 0; i <= n; ++i){
if (a[i] != b[k])
{
k+=1;
ac = a[i];
b[k] =ac; //b is where I want to put distinct digits
}
}
for ( i = 0; i < k; ++i)
{
printf("%d ", b[i]);
}
}
Ma questo non è abbastanza, perché quello che ho fatto è per il caso in cui i numeri si ripetono uno dopo l'altro, voglio dire: 111122221, avrò 121 e 1 alla fine di nuovo. Per favore, aiutami a scrivere una funzione che prenderebbe in considerazione questo caso, con numeri ripetuti sparsi nell'array? Grazie.