PROBLEMA CODICE INSERTION SORT C

Iprogrammer

Nuovo Utente
27 Apr 2020
2
0
1
Ciao a tutti!
Premetto che ho iniziato da poco a studiare il linguaggio di programmazione C, però sono a conoscenza delle basi fondamentali per capire un semplice codice.
Ho un problema con il codice che dovrebbe effettuare l'insertion sort di alcuni valori di input forniti dall'utente. Il codice è il seguente:

C:
/*

 * codice per insertion sort

 * descrizione: https://it.wikipedia.org/wiki/Insertion_sort

 */

#include <stdio.h>

#include <stdlib.h>

#define MAX_INPUT 10

void estrai_dati(int ac, char **av, int *vett, int *lung)

{

    *lung = ac - 1;

    for (int i = 0; i < *lung; ++i)

        vett[i] = atoi(av[i+1]);

}

void fai_spazio(int posizione, int *vett, int lung)

{

    for (int j = lung - 1; j > posizione; ++j)

        vett[j] = vett[j-1];

}

void inserisci(int nuovo_dato, int num_dati_ord, int *vett)

{

    if (num_dati_ord = 0)  { // il vettore è vuoto, facile

        vett[0] = nuovo_dato;

        return;

    }

    for (int i = 0; i < num_dati_ord; ++i)  {

        if (nuovo_dato < vett[i])  {

            // sposta da vett[i] in poi di un posto sulla destra

            // prima di inserire il nuovo_dato

            fai_spazio(i, vett, num_dati_ord);

            vett[i] = nuovo_dato;

            return;

        }

    }

}

void ordina_dati(const int *dati_non_ordinati, int *dati_ordinati)

{

    int num_dati = sizeof(dati_non_ordinati) / sizeof(dati_non_ordinati[0]);

    for (int i = 0; i < num_dati; ++i)

        inserisci(dati_non_ordinati[i], i, dati_ordinati);

}

void stampa_vettore(const int *vett, int lung)

{

    for (int i = 0; i < lung; ++i)

        printf("%d ",vett[i]);

    printf("\n");

}

int main(int argc, char **argv)

{

    if (argc > MAX_INPUT + 1) {

        printf("Numero massimo di input %d\n", MAX_INPUT);

        return -1;

    }

    int dati_input[MAX_INPUT] = {0};

    int dati_ordinati[MAX_INPUT] = {0};

    int num_dati = 0;

    estrai_dati(argc, argv, dati_input, &num_dati);

    ordina_dati(dati_input, dati_ordinati);

    stampa_vettore(dati_ordinati, num_dati);

    return 0;

}

Se per esempio inserisco i valori "2 9 1 4 3 6" l'output finale mi restituisce "0 0 0 0 0 0" invece di "1 2 3 4 6 9".
Non capisco dov'è il problema e quali siano gli errori.
Qualcuno può aiutarmi?

Grazie.
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
ho fatto copia/incolla del tuo codice e l'ho compilato, ottenendo una fila di errori,
come mai ?
Codice:
Vettore.C
Vettore.C(21) : error C2062: type 'int' unexpected
Vettore.C(21) : error C2065: 'i' : undefined
Vettore.C(21) : error C2143: syntax error : missing ';' before ')'
Vettore.C(25) : warning C4100: 'av' : unreferenced formal parameter
Vettore.C(25) : warning C4100: 'vett' : unreferenced formal parameter
Vettore.C(31) : error C2062: type 'int' unexpected
Vettore.C(31) : error C2065: 'j' : undefined
Vettore.C(31) : error C2143: syntax error : missing ';' before ')'
Vettore.C(35) : warning C4100: 'vett' : unreferenced formal parameter
Vettore.C(35) : warning C4100: 'lung' : unreferenced formal parameter
Vettore.C(49) : error C2062: type 'int' unexpected
Vettore.C(49) : error C2065: 'i' : undefined
Vettore.C(49) : error C2143: syntax error : missing ';' before ')'
Vettore.C(65) : error C2059: syntax error : '}'
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
dopo le correzioni più semplici,
Codice:
Vettore.C
Vettore.C(107) : error C2109: subscript on non-array
Vettore.C(107) : error C2059: syntax error : '{'
Vettore.C(109) : error C2109: subscript on non-array
Vettore.C(109) : error C2059: syntax error : '{'
Vettore.C(113) : warning C4047: 'argument' : different levels of indirection
Vettore.C(113) : warning C4024: 'estrai_dati' : different types : parameter 3
Vettore.C(115) : warning C4047: 'argument' : different levels of indirection
Vettore.C(115) : warning C4024: 'ordina_dati' : different types : parameter 1
Vettore.C(115) : warning C4047: 'argument' : different levels of indirection
Vettore.C(115) : warning C4024: 'ordina_dati' : different types : parameter 2
Vettore.C(117) : warning C4047: 'argument' : different levels of indirection
Vettore.C(117) : warning C4024: 'stampa_vettore' : different types : parameter 1
 
Discussioni simili
Autore Titolo Forum Risposte Data
I PROBLEMA CODICE C - INSERTION SORT Presentati al Forum 1
L [PHP] Problema su codice o server PHP 5
W Problema con cambio colorazione codice su Dreamweaver CC 2017 Windows e Software 0
F Problema codice in un ciclo while PHP 2
A problema con codice HTML e CSS 2
A problema : codice javascript Javascript 1
A problema : codice html HTML e CSS 1
P problema con codice php... PHP 7
A problema con codice HTML e CSS 2
A problema caricamento codice <iframe video youtube PHP 3
G Problema con codice php PHP 1
V problema con codice Facebook Like box Social Media Marketing 0
G Problema vB (inserito codice malevolo) PHP 0
T problema con codice... , Javascript 1
L problema youtube ...codice da incorporare PHP 2
J Problema con codice php PHP 1
H Problema riguardo l'estrazione di record dal DB tramite codice univoco PHP 7
Shyson Problema col codice del DB PHP 0
E Problema con il codice PHP 3
P Problema di Undefined variable nel codice PHP PHP 5
A Problema con codice ASP Classic ASP 1
C Problema insolito, codice javascript ignorato Javascript 3
M Problema visualizzazione codice sorgente altro sito PHP 4
C Problema con codice php PHP 2
S Problema visualizzazione codice PHP 4
asevenx problema con codice di sicurezza captcha PHP 2
S [ACCESS] Problema nel creare le tabelle da codice. MS Access 4
T problema con codice html dentro javascript Javascript 1
E Problema pulizia codice jquery jQuery 0
A problema codice php PHP 0
F Problema codice Supporto Mr.Webmaster 0
I Auto-start webradio [Era: Problema con codice] Javascript 0
G Problema ricerca codice PHP 2
B Problema con codice php PHP 3
V Problema estrabolazione dati da excel in mysql attraverso codice php PHP 10
C problema seo + cerco esperto SEO e Posizionamento 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4

Discussioni simili