La funzione deve prendere un array di interi ordinati ed eliminare i duplicati, restituendo n, lunghezza del nuovo array.
codice:
#include <stdio.h>
int eliminaDuplicati(int v[], int n) {
int i, k, found=0;
for(i=0; i<n; i++) {
do {
if (v[i+1]==v[i])
found=1;
else {
found=0;
k=i+1;
for(k; k<n-1; k++)
v[k]=v[k+1];
n=n-1;
}
} while(found==0);
}
return n;
}
void main() {
int a[8];
int i;
int m;
printf("Inserisci i numeri del vettore: ");
for (i=0; i<8; i++)
scanf("%d", &a[i]);
m=8;
m=eliminaDuplicati(a, m);
for(i=0; i<m; i++)
printf("%d ", a[i]);
printf("%d", m);
}