Quote:
Originariamente inviato da Starise
un programma in C che richiama una funzione void che ordina un array tramite insertion sort
|
L'array deve esserci già, o devi usare insertion sort per inserire i valori nell'array in modo che, a ogni inserimento, l'array rimanga ordinato?
Perché l'uso "vero" sarebbe quello... comunque, diciamo che siamo nella prima ipotesi.
Quote:
|
ho provato a fare un programma... ma non mi funziona... potete aiutarmi a scovare gli errori?
|
Se ci dici anche che errori dà, ti possiamo aiutare meglio.
A proposito: quando inserisci di programma, usa il tag "code", altrimenti perdi l'indentazione. Così:
Codice:
printf("Inserisci la quantità di numeri da esaminare\n");
scanf("%d", &n);
Qui dovresti accertarti che la scanf abbia avuto successo... va beh, diciamo che l'utente ha fatto il bravo...
Codice:
a=(int*)malloc(n*sizeof(int));
Errore classico da principiante: quando allochi memoria dinamicamente, devi sempre accertarti che l'allocazione abbia avuto successo.
Leggi il manuale (o la man page di malloc) per capire come si fa.
Codice:
for (i=0;i<n;i++)
{
printf("%d",a[i]);
}
Se usi la printf così, ti vengono i numeri tutti attaccati.
La stringa di formato dovrebbe essere " %d", con lo spazio all'inizio.
Per il resto.. boh, sembra tutto a posto... prova a fare queste modifiche e facci sapere cosa esce fuori.