ecco l'algoritmo completo , funziona ma nn mi piace molto lo avrei voluto fare senza array_temp che è l'array di appoggio ma nn lo riesco a creare, mica mi puoi aiutare .....
ti passo l' intero algoritmo con il main e commenti

grazie


codice:
#include "stdlib.h"
#include "stdio.h"
#define maX 100
void inserimento_array(int *array1D, int size);                             //Inserisco i valori
void ordinamento (int *array1D, int size);									//Ordino l'array
void eliminazione_duplicati (int *array1D, int *size, int flag);			//Elimino i duplicati
void stampa(int *array1D,int size);											//Stampo l' array

int main()
{
	int array1D[maX];														//Array utilizzato
	int size=0;																//Size dell' array deciso tramite scanf
	int flag=0;																//Flag per gestire il size durante l' eliminazione dei doppioni
	printf("Inserire quanti valori vuoi inserire\t");
	scanf("%d",&size);
	inserimento_array(array1D,size);										//Richiamo funzione inserimento
	system("cls");
	printf("L'array ordinato con i valori ancora non controllati \n\n");
	ordinamento(array1D,size);												//Richiamo funzione ordinamento
	stampa(array1D,size);													//Richiamo funzione stampa
	printf("\tSize %d",size);
	printf("\n\nL'array ordinato con i valori controllati \n\n");
	eliminazione_duplicati( array1D,&size,flag);							//Richiamo funzione eliminazione
	stampa(array1D,size);													//Richiamo funzione stampa
	printf("\tSize %d",size);
	printf("\n\n");

return 0;
}


void inserimento_array(int *array1D, int size)								//Inserisco i valori tramite I\O
{
	int i=0;
	printf("\n");
	for(i=0;i<size;i++)
	{
		printf("Inserire il valore da tastiera\t");
		scanf("%d",&array1D[i]);
		printf("\n");
	}
}


void ordinamento (int *array1D, int size)									//Ordinamento  array
{
	int i=0;
	int j=0;
	int temp=0;
	for (i=0;i<size;i++)
		{
			for (j=i;j<size;j++)
				{
					if(array1D[i] > array1D[j] )
					{
						temp=array1D[i];
						array1D[i]=array1D[j];
						array1D[j]=temp;
					}
				}
		}
}



void stampa(int *array1D,int size)										//Stampa array 
{
	int i=0;
printf("Array= {");
		for (i=0;i<size;i++)
		{
			printf("[%d]",array1D[i]);
		}
printf("}");
}



void eliminazione_duplicati (int *array1D, int *size, int flag)
{
																	//Appoggia sull' array temp solo uno dei valori uguali oltre che a tutti quelli che nn vengono ripetuti piu di 1 volta
	int i,j,k=0;
	int k_n=0,flag_t=0;
	int array_temp[maX];

for(i=0;i<*size;i++)
{
	flag_t=0;

	for(j=i+1;j<*size;j++)
	{
		if (array1D[i]==array1D[j])
		{
			flag_t=1;
			
		}
		
	}
	if (flag_t!=1)
		{
			array_temp[k]=array1D[i];
			k_n++;
			k++;
		}	
}
k=0;
for (i=0;i<k_n;i++)
	{
		array1D[i]=array_temp[k];
		k++;
	}

*size=k_n;
}