Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] aiuto con stampa di una lista

    Ciao a tutti. sto imparando ad usare le liste ma ho alcuni problemi...
    uno di questi è ad esempio la stampa!

    l'esercizio dice di trattare una "catena di montaggio"... fatto sta che devo immagazinare dei dati in una lista e poi stamparla. vi allego i due moduli che ho scritto. sapete dirmi anche solo dove sbaglio? grazie!


    main.c
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include "coda.h"
    
    int main()
    {
        int key = -1;
        
        
        while (key != 0)
        {
            printf("\n1) Avvio Job.");
            printf("\n2) Termino Job."); //non sviluppato
            printf("\n3) Stampa lista Job.");
                    printf("\n\t... o '0' per terminare. ");
            printf("\n\t Inserisci comando: ");
            fscanf(stdin, "%d", &key);
    
            switch (key)
            {
            case 1: new_job();
                break;
            case 2: //termino job
                break;
            case 3: print_job();
            case 0:
                break;
            default:
                printf("\n  Comando Errato. Riprova!\n");
    
            }
        }
        return (EXIT_SUCCESS);
    }
    coda.h
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include "Item.h"
    
    typedef struct nodo* Link;
    
    typedef struct nodo{
        Job job;
        Link next;
    } nodo;
    
    void new_job();
    
    void print_job();
    coda.c
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include "coda.h"
    
    struct queue
    {
        Link head;
        Link tail;
    } record;
    
    void new_job()
    {
        Link nuovo_job;
        nuovo_job = (nodo*) malloc(sizeof (Link));
        get_item(&(nuovo_job->job));
        if (record.head == NULL)
        {
            record.head = nuovo_job;
        }
        else
            while (record.tail != NULL)
                record.tail = (record.tail)->next;
        printf("\n\tjob in processo!");
        return;
    }
    
    void print_job()
    {
        Link scroll;
        scroll = record.head;
    
        do
        {
            print_item(scroll->job);
            scroll=scroll->next;
        }
        while(scroll!=NULL);*/
        
        return;
    }

    Item.h
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Job{
        char lavoro[30]; 
        int priority;
    }Job;
    
    void get_item(Job* nodo);
    void print_item(Job nodo);

    Item.c
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include "Item.h"
    
    void get_item(Job* nodo)
    {
        printf("\nInserisci nome job: ");
        fscanf(stdin, "%s", nodo->lavoro);
    
        printf("\nInserisci la sua priorita': ");
        fscanf(stdin, "%d", &(nodo->priority));
    
        return;
    }
    
    void print_item(Job nodo)
    {
        printf("%s %d\n", nodo.lavoro, nodo.priority);
    
        return;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [C] aiuto con stampa di una lista

    Originariamente inviato da Paolo1991
    sapete dirmi anche solo dove sbaglio?
    Non è meglio che tu ci dica che errori/malfunzionamenti hai?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    scusami hai ragione... colpa della frustrazione :P

    comunque non ho nessun errore, per quello non riesco a correggere...

    l'inserzione sembra (sottolineo sembra) funzionare (mi nascono però dubbi sulla corretta memorizzazione dei valori). se provo a inserire un paio di valori (cioè stringa + numero), mi stampa solo la prima stringa che ho inserito e al posto del numero penso mi stampi qualche cella di memoria, dato che è sempre lo stesso! non ho idea di dove sia il problema... penso sia un errore logico e non di sintassi a questo punto :\

    ps. il main consiste in uno switch semplice che chiama le funzioni in coda.c ma se pensi sia utile lo allego...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il main dov'è ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    appena incluso a inizio thread

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto questa

    nuovo_job = (nodo*) malloc(sizeof (Link));

    deve essere

    nuovo_job = (Link) malloc(sizeof (nodo));
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    grazie mille, correggo subito... ora mi stampa anche il numero correttamente... ci deve essere un altro errore però ancora...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.