allora ho questo programma
codice:
#include <stdio.h>
#include <malloc.h>

/* PROTOTIPO FUNZIONE */
void sel_sort(float *A, int n);

main() {

/* DICHIARAZIONE VARIABILI */
int i, n, c;
float *A;

	/* LETTURA GRANDEZZA ARRAY */
	printf("Inserire la grandezza n dell'array: ");
	scanf("%d",&n);

	/* ALLOCAZIONE DINAMICA DELLA MEMORIA */
	if(!(A = (float *)malloc(n*sizeof(float))))
	abort();

	/* LETTURA DI TUTTI GLI ELEMENTI DELL' ARRAY A */
	printf("\nInserire uno per uno tutti gli elementi dell'array...\n");
	   for (i=0; i<n; i++){
	      printf("Inserire il %d° elemento: ", c=i+1);
	      scanf("%f", &A[i]);
	   }

	/* RICHIAMO DELLA FUNZIONE */
	sel_sort(A, n);

	/* STAMPA A VIDEO DELL'ARRAY ORDINATO */
	printf("\nL'array A è ora ordinato come segue:\n");
	for (i=0; i<n; i++)
	printf("%f\n", A[i]);
}

/****************** SPECIFICHE FUNZIONE *************************/
void sel_sort(float *A, int n){
int i, j, p, min;

for (i=0; i<n-1; i++) {
    min = A[i];
    p = i;
        for (j=i+1; j<n; j++){
                if (A[j]<min){
                min = A[j];
                p = j;
                }
           A[p] = A[i];
           A[i] = min;
        }
}
}
che dovrebbe ordinare un' array ma se ad es dò in input un array del tipo:
6 2 45 12
lui mi dà in output:
2 2 12 45.
Che fine fà il 6? dove sbaglio???