Visualizzazione dei risultati da 1 a 10 su 10

Visualizzazione discussione

  1. #4
    Allora la funzioni "inserimento_bus" deve ritornare una variabile di tipo lista_bus perché dopo l'inserimento devi sapere quale nodo stampare. Nel tuo codice la funzione non ritornava nulla, ed è per questo che non stampavi nulla. Fai la stessa cosa per la funzione "inserimento_cond".

    Nella funzione "caricamento" metti una condizione per decidere quale delle due struct caricare e nel main ti regoli ti conseguenza per stampare.

    Per qualunque chiarimento sono qui

    codice:
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #define max 30
    
    
    //////////////Definizione STRUCT
    
    
    typedef struct s_cond{
        char nome[max];
        int giorni,percorso;
    }cond;
    
    
    
    
    typedef struct s_nodo_cond{
        cond info;
        struct s_nodo_cond *next;
    }nodo_cond;
    
    
    
    
    typedef nodo_cond *lista_cond;
    
    
    
    
    typedef struct s_auto{
        char targa[max];
        int posti,km;
    }bus;
    
    
    
    
    typedef struct s_nodo_bus{
        bus info;
        lista_cond *punt_interno;
        struct s_nodo_bus *next;
    }nodo_bus;
    
    
    
    
    typedef nodo_bus *lista_bus;
    
    
    
    
    /////////////////////////////////////////////////// FUNZIONI
    
    
    lista_bus inserimento_bus(lista_bus *lis,bus b){
        lista_bus aux=NULL;
        aux=(lista_bus)malloc(sizeof(nodo_bus));
        aux->info=b;
        aux->punt_interno=NULL;
        aux->next=*lis;
        return aux;
    
    
    }
    
    
    
    
    lista_cond inserimento_cond(lista_cond *lis,cond d){
        lista_cond aux=NULL;
        aux=(lista_cond)malloc(sizeof(nodo_cond));
        aux->info=d;
        aux->next=*lis;
        return aux;
    }
    
    
    
    
    
    
    
    
    lista_bus caricamento(lista_bus *lis){
        FILE *fp;
        bus b;
        cond c;
        lista_bus point=NULL;
        fp=fopen("archivio.txt","r");
        if(fp==NULL){
            perror("");
            exit(1);
        }
        while(fscanf(fp,"%s%d%d",b.targa,&b.posti,&b.km) ==3){
              point=inserimento_bus(lis,b);
            //inserimento_cond((*lis)->punt_interno,c);
        }
        fclose(fp);
    
    
        return point;
    }
    
    
    
    
    
    
    
    
    void stampa_cond(lista_cond lis){
        while(lis!=NULL){
    
    
    
    
            printf("\nNome: %s",lis->info.nome);
            printf("\nGiorni: %d",lis->info.giorni);
            printf("\nPercorso: %d",lis->info.percorso);
            lis=lis->next;
        }
    }
    
    
    
    
    void stampa_bus(lista_bus lis)
    {
        lista_bus aux=lis;
    
    
        while(aux!=NULL){
    
    
            printf("\nTarga: %s",aux->info.targa);
            printf("\nPosti: %d",aux->info.posti);
            printf("\nKm: %d",aux->info.km);
            //stampa_cond(aux->punt_interno);
            aux=aux->next;
        }
        }
    
    
        ////////// MAIN
    
    
        int main(){
        lista_bus lista_bus=NULL;
        lista_cond lista_cond=NULL;
        int scelta;
        do{
            printf("\n1)Caricamento");
            printf("\n2)Stampa");
            printf("\n\n\tScelta: ");
            scanf("%d",&scelta);
    
    
            switch(scelta){
            case 1:
                lista_bus=caricamento(&lista_bus);
                break;
            case 2: stampa_bus(lista_bus);
    
    
                break;
            }
        }while(scelta!=0);
    }
    Ultima modifica di MItaly; 05-10-2015 a 21:45 Motivo: %s~\[\(/\?\)quote\]~[\1code]~gi

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.