allora ho questo programma
che dovrebbe ordinare un' array ma se ad es dò in input un array del tipo: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; } } }
6 2 45 12
lui mi dà in output:
2 2 12 45.
Che fine fà il 6? dove sbaglio???

Rispondi quotando