Announcement

Collapse
No announcement yet.

lista di matrici per la soluzione al problema di di stasi [non funziona]

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • lista di matrici per la soluzione al problema di di stasi [non funziona]

    salve ragazzi ho pensato che una possibile soluzione al problema della stampa di tutti i dati anagrafici dei ragazzi di una classe la si potesse risolvere con una lista(argomento non trattato ancora all'uni) ma qualcosina mi sfugge ancora vi posto il sorgente credo sia la miglior soluzione perché non mi vincolerebbe in nessuna maniera dal farla crescere in maniera vertiginosa ecco tutto per voi:


    PHP Code:
    #include <st***.h>
    #include <string.h>
    #include <stdlib.h>
    struct studenti
    {  char *nome;
        
    char *cognome;
        
    char matricola[15];
        
    struct studenti*next;
    };


    void stampa(struct studenti*);
    void inserisci(struct studenti*);
    int main()
    {   
    int scelta;
        
    struct studenti *alunni ;
      
        
    alunni=(struct studenti*)malloc(sizeof(struct studenti));
        
          
    alunni->next=NULL;
        do{
        
    printf(" _________________________\n");
        
    printf("|1: inserisci i dati------|\n");
        
    printf("|2: stampa----------------|\n");
        
    printf("|3: exit------------------|\n");
        
    printf("|-------------------------|\n");
        
    scanf("%d",&scelta);
        
        
        if(
    scelta==1)
        {
            
    inserisci(alunni);
        
        }
              if(
    scelta==2)
            
            {
            
    stampa(alunni);
        
            }
        
        
        
        }while(
    scelta!=3);
        
        
    alunni=NULL;
        
        return 
    0;
    }



    void inserisci(struct studenti *alunno)
    {

        
    char *nome,*cognome,*matricola;
        
        
    cognome=nome=matricola=(char*)malloc(4);
            
        while(
    alunno->next!=NULL){
        
            
    alunno=alunno->next;  // vado avanti nella lista fino a che non trovo l'ultimo
        
        
        
    }
            
    printf("inserisci un nome\n");
        
    scanf("%s",nome);
        
        
    alunno->nome=(char*)malloc(strlen(nome+1)*sizeof(char*));// prendo memoria lo stretto indispensabile
        
    strcpy(alunno->nome,nome);// copia del dato nella struttura
        
        
    printf("inserisci il cognome\n");
        
    scanf("%s",cognome);
        
    alunno->cognome=(char*)malloc(strlen(cognome+1)*sizeof(char*));
        
    strcpy(alunno->cognome,cognome);
        
        
        
    printf("inserisci la matricola\n");
        
    scanf("%s",matricola);
        
    alunno->matricola[0]=*(char*)malloc(strlen(matricola+1)*sizeof(char*));
        
    strcpy(alunno->matricola,matricola);
        
        

    }

    void stampa(struct studenti *alunno){
        while(
    alunno->next!=NULL){  // scorro fino all'ultimo elemento e mentre lo faccio stampo
        
    printf("_________________________________\n");
        
    puts(alunno->nome);
        
    puts(alunno->cognome);
        
    puts(alunno->matricola);
        
    printf("_________________________________\n");
            
    alunno=alunno->next;
        }


    buon divertimento!!

  • #2
    ottimo broke, ancora devo metterci mano, però lo farò presto anchio, non lo guardo ancora solo per cercare di farlo da solo. grazie cmq
    | VFX Artist, C++ Programmer, HW Overclocker | Web: xgiovio.com Email: xgiovio@gmail.com Twitter: @xgiovio

    Comment

    Working...
    X

    Google Profile


    My name is Giovanni Di Grezia, but people call me xgiovio.

    Here is my homepage:.

    I'm a VFX Artist and Software Developer.

    Giovanni Di Grezia