codice:
#include <stdio.h>
int main() {
int a[20], length = 20, i, *insert;
for(i = 0; i < length; i++)
a[i] = i + 1;
//stampa
for(i = 0; i < length; i++)
printf("%d ", a[i]);
printf("\n%d\n", length);
//rimuovi multipli di 3
for(insert = a, i = 0; i < length; i++)
if(a[i]%3!=0) {
(*insert) = a[i];
insert++;
}
length = insert - a;
//stampa
for(i = 0; i < length; i++)
printf("%d ", a[i]);
printf("\n%d\n", length);
return 0;
}
Un esempio della rimozione di elementi...
Io ho tolto i multipli di 3 perchè non avevo voglia né di generare né di scrivere i numeri primi, ma il concetto è lo stesso, basta cambiare le clausole...
In ogni caso, a parte l'identazione orribbile, nel tuo codice non sembrano esserci errori, pobrabilmente l'errore è nel codice di elaborazione che non ci hai mostrato...