Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Aiuto programma C

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Aiuto programma C

Messaggioda ...Simo... » mer ago 29, 2007 6:28 pm

Ho provato a fare questo programmino per iniziare ad esercitarmi con le liste per un esame, ma proprio non mi riesce farlo funzionare....
Il problema è che quando arrivo a visualizzare gli elementi, mi viene visualizzato solamente il primo nodo della lista.... Potete aiutarmi?

Codice: Seleziona tutto
#include<stdio.h>
#include<stdlib.h>

/****Definisco la struttura del nodo*******/
typedef struct nodo{
                    char nome[20];
                    int matricola;
                    struct nodo *prox;
                    };

/******Prototipi funzioni*************/
nodo *crea_lista();
void visualizza_lista(nodo *);
/**************Main del programma********/
main()
{
      nodo *testa=NULL;
      int menu=0;
      while(1){
               printf("\n\n 1 - Crea lista\n");
               printf(" 2 - Visualizza lista\n");
               printf(" 0 - Esci dal Programma\n ");
               scanf("%d",&menu);
               switch(menu){
                            case(1):
                                    system("CLS");
                                    testa=crea_lista();
                                    break;
                            case(2):
                                    system("CLS");
                                    visualizza_lista(testa);
                                    break;
                            case(0):
                                    return 0;
                                    break;
                            default:
                                    printf("\n\t\t\t****Scelta non valida***");
                           }
               printf("\n\n");
               system("PAUSE");
               system("CLS");
               }
}

/********Definizione funzioni*****/
nodo *crea_lista()
{
nodo *testa=NULL, *paus=NULL;
//Crea primo elemento e inserimento dati
testa=(nodo *)malloc(sizeof(nodo));
if (testa==NULL) return(NULL);
printf("Inserisci il nome ");
scanf("%s",testa->nome);
printf("Inserisci la matricola ");
scanf("%d",&testa->matricola);
testa->prox=NULL;
paus=testa;
while(1){
         char scelta;
         printf("\nVuoi inserire altri elementi? (s/n) ");
         scanf("%s",&scelta);
         if (scelta=='n') {
                          break;
                          }
         //Creazione nodi successivi
         else if(scelta=='s'){
                              paus->prox=(nodo *)malloc(sizeof(nodo));
                              if(paus->prox==NULL){
                                                   printf("\n\n\t****Memoria esaurita**\n\n");
                                                   return(testa);
                                                   }
                              paus=paus->prox;
                              printf("\nInserisci il nome ");
                              scanf("%s",paus->nome);
                              printf("Inserisci la matricola ");
                              scanf("%d",&paus->matricola);
                              paus->prox=NULL;
                              }
         else{
              printf("\n\t\t\t****Scelta non valida***\n");
              continue;
              }
         }

return(testa);
}

void visualizza_lista(nodo *testa)
{
 nodo *paus;
 if(testa==NULL){
                 printf("\n\n\t****Lista vuota****\n\n");
                 }
 else{
      paus=testa;
      int contatore=1;
      while(paus!=NULL){
                        printf("\n%d elemento\n\n",contatore);
                        //printf("  %s\n",paus->nome);
                        printf("  %d",paus->matricola);
                        paus=paus->prox;
                        contatore++;
                        system("pause");
                        }
     
      }
                       
}
Avatar utente
...Simo...
Aficionado
Aficionado
 
Messaggi: 127
Iscritto il: lun lug 09, 2007 6:43 pm
Località: Pistoia

Messaggioda manu187 » mar ott 30, 2007 1:22 pm

forse hai bisogno di un ciclo che ne so punterei sul for
Avatar utente
manu187
Senior Member
Senior Member
 
Messaggi: 181
Iscritto il: dom ott 28, 2007 8:06 pm

Messaggioda ...Simo... » mar ott 30, 2007 2:35 pm

[bleh] Già risolto...

Tanto per sapere dove lo metteresti il ciclo? [;)]
Avatar utente
...Simo...
Aficionado
Aficionado
 
Messaggi: 127
Iscritto il: lun lug 09, 2007 6:43 pm
Località: Pistoia


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising