Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C] Somma tra liste?

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    3

    [C] Somma tra liste?

    Ciao a tutti ragazzi, come da titolo il mio problema riguarda la somma tra liste. Il programma parte però mi si blocca al momento della visualizzazione della lista somma..e non capisco perché! Forse ho sbagliato i parametri attuali della funzione? Mi potreste aiutare? (grazie in anticipo )

    Il codice è questo:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Lista {
        int info;
        struct Lista *next;
    } Nodo;
    
    Nodo *crea();
    void Visualizza(Nodo*);
    Nodo* SommaListe(Nodo *p1,Nodo *p2);
    
    int main() {
        Nodo *pun1,*pun2, *pun3;
    
        pun1=crea();
        Visualizza(pun1);
    
        pun2=crea();
        Visualizza(pun2);
    
        /*Invocazione della funzione per la somma delle liste*/
        pun3= SommaListe(pun1,pun2);
        Visualizza(pun3);
    }
    
    Nodo *crea() {
        Nodo *p, *paux;
        int i,n;
    
        printf("Da quanti elementi e' composta la lista?");
        scanf("%d", &n);
    
        if(n==0)
            p=NULL;
        else {
            p=(Nodo*)malloc(sizeof(Nodo));
            printf("Inserisci la 1a informazione: ");
            scanf("%d", &p->info);
            paux=p;
    
            for(i=2; i<=n; i++) {
                paux->next=(Nodo*)malloc(sizeof(Nodo));
                paux=paux->next;
                printf("Inserire la %da informazione: ",i);
                scanf("%d", &paux->info);
            }
            paux->next=NULL;
        }
        return(p);
    }
    
    void Visualizza(Nodo *p) {
        if(p!=NULL) {
            printf("--->");
            printf("%d", p->info);
            Visualizza(p->next);
        }
        else
            printf("NULL\n");
    }
    
    Nodo* SommaListe(Nodo *p1,Nodo *p2) {
        Nodo *p3=NULL, *paux3;
    
        if(p1!=NULL && p2!=NULL) {
            p3=(Nodo*)malloc(sizeof(Nodo));
            p3->info=p1->info+p2->info;
            paux3=p3;
            p1->next;
            p2->next;
    
            for(; p1!=NULL && p2!=NULL; ) {
                paux3->next=(Nodo*)malloc(sizeof(Nodo));
                paux3=paux3->next;
                paux3->info=p1->info+p2->info;
                p1->next;
                p2->next;
            }
            paux3->next=NULL;
        }
        return(p3);
    }
    Ultima modifica di MItaly; 12-02-2016 a 14:53 Motivo: Tag CODE, linguaggio nel titolo, indentazione

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.