Ciao a tutti, sono nuovo del forum e ho subito una domanda da farvi, è una modifica al selection sort in modo che mi elimini gli eventuali doppioni che un utente puo' inserire nel vettore, esempio:
Input:
10 10 10 10 10 9 9 8 7 6 5 5

output
5 6 7 8 9 10

La funzione che devo modificare è selectionsort() ecco il codice del programma intero la funzione che deve essere modificata è l'ultima ed è commentata riga x riga.
Selection sort prende il numero minimo è lo sposta nella prima celle dall'array a[0] e man mano espande la parte sx dell'array (contrario del bubble sort) con i valori in ordine crescente.
Il codice:

codice:
#include<stdio.h>
#define SIZE 10

void insert(int[], int);
void selectionsort(int[], int);
void stampa(int[], int);

int a[SIZE];

int main()
{
	
	int i, j;
	
	insert(a, SIZE);
	printf("Array Originale:\n");
	stampa(a, SIZE);

	selectionsort(a, SIZE);
	printf("\n\nStampo l'array ordinato:\n");
	stampa(a, SIZE);
	printf("\n");
	return 0;
}

/**
@params: a = Vettore
	 size = dimensione
*/
void stampa(int *a, int size)
{
	int i;
	for(i = 0; i < size; i++)
	{
		printf("%d ", a[i]);
	}


}

/**
@params: a = Vettore
	 size = dimensione
*/
void insert(int *a, int size)
{

	int i = 0;
	for(i = 0; i < size; i++)
	{
		printf("Inserisci il valore in posisione %d: " ,i);
		scanf("%d", &a[i]);
	}

}

void selectionsort(int *a, int size)
{
	int i, j, min, p;
//primo ciclo esterno for da 0 a size-1 
for(i = 0; i < size - 1; ++i)
	{
                //assena a min il valore dell'array
		min= a[i];

                 // memorizza l'indice nella va p
        	p = i;

                ciclo for interno da i+1(x' il min si trova gia' in a[0]) a size
                for(j = i + 1; j < size; ++j)
                {
                //se il valore dopo è < di quello prima inverti
                        if (a[j] < min)
			{
				min = a[j];
				p = j;
			}
}
a[p]=a[i]; 
a[i]=min;
}
Le 2 funzioni insert() e stampa() permettono la prima l'inserimento dei dati nel vettore (l'utenete Deve avere la possibilità di inserire i doppi, quindi non va modificata), la seconda stampa a video i dati contenuti nell'array.
Vi prego aiutatemi sono alle primissime armi con la programmazione e sono spiazzato!
Grazie a tutti