Visualizzazione dei risultati da 1 a 10 su 10

Visualizzazione discussione

  1. #6
    Allora non ho avuto bisogno di fare un'altra funzione, bastava usare una variabile esterna per appoggio. Ti posto il codice, con questo riesci a stampare tutto. (MItaly sicuramente modificherai il quote, mi puoi indirizzare alla pagina dove si spiega come postare i codici? Grazie in anticipo).


    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;
    
    lista_cond ext=NULL; //Variabile esterna d'appoggio
    
    
    
    /////////////////////////////////////////////////// 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;
        lista_cond cond=NULL;
        fp=fopen("archivio.txt","r");
        if(fp==NULL){
            perror("");
            exit(1);
        }
        while(fscanf(fp,"%s%d%d%s%d%d",b.targa,&b.posti,&b.km,c.nome,&c.percorso,&c.giorni) != EOF)
        {
    
            point=inserimento_bus(lis,b);
    
            ext=inserimento_cond(cond,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;
        int scelta;
        int n=0,y=1;
        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);
                stampa_cond(ext);
    
                break;
            }
        }while(scelta!=0);
    }
    Ultima modifica di LeleFT; 07-10-2015 a 08:56 Motivo: Modificati tag QUOTE con tag CODE

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.