RISOLTO Ordinamento array linguaggio c

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Frank2000

Nuovo Utente
Messaggi
26
Reazioni
0
Punteggio
21
Salve a tutti.
Sto implementando un programmino C nel quale utilizzo un array generato con numeri casuali e lo ordino tramite varie funzioni ognuna delle quali descrive un algoritmo di ordinamento. Utilizzo un array "copia", nel quale appunto copio il mio array, visto che lo devo ogni volta ordinare richiamando una delle funzioni, e se fosse già ordinato non avrebbe senso. Solo che l'esecuzione non mi mostra l'array ordinato, e non riesco a capire il perchè, aiutatemi per favore. Nelle foto vi mostro il main ,la funzione insertsort e quello che accade durante l'esecuzione.

screen1.webp screen2.webp screen3.webp
 
Ultima modifica da un moderatore:
Forse sarebbe meglio postare il listato come testo invece di allegare una immagine di esso.
Esiste un'apposita funzione nella barra: Insert->Code .
 
Ultima modifica:
ok grazie
C:
int main ()
{

int i,n;
int array[n];
int array_copia[n];

n = 10;


printf("Ecco l'array da ordinare:\n");
srand(1);
for(i=0;i< n;i++)
   {
     array[i] = rand() % 40;
     printf("%d\n",array[i]);
   }


for(i=0;i< n;i++)
   {
    array_copia[i] = array[i];
    }
 

/* ordina tramite insertsort */

printf("array ordinato tramite insertsort:\n");

insertsort(array_copia[n],n);
for(i=0; i< n; i++)
   {
      printf("%d\n",array_copia[i]);
   }
ALGORITMO INSERTSORT:
C:
void insertsort(int a[],
        int n)
{
    int valore_ins,
        i,
        j;
    
    for (i = 1;
        (i < n);
        i++)
    {
        for (valore_ins = a[i], j = i - 1;
            ((j >= 0) && (a[j] > valore_ins));
        j--)
        a[j + 1] = a[j];
        if (j + 1 != i)
               a[j + 1] = valore_ins;
    }
}
 
Guarda come hai dichiarato insertionsort e cosa poi invece gli passi come input :)
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top