Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9

    Spiegazione esercizio, non capisco questo esercizio qualcuno può spiegarlo nei dettagli? Soprattutto il malloc

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    struct elem{
        char cod[5];
        int imp;
        struct elem *next;
    };
    
    
    struct elem *corrente;
    struct elem *primo, * nuovo;
    void inser(void);
    void visual(void);
    void sistema(void);
    
    
    
    
    main()
    {
        int sc;
        primo = NULL;
        
        while (sc != 3)
        {
            printf("1-Inserimento struct alla catena\n2-Visualizzazione catena\n3-Uscita\n");
            printf("Scegli un'operazione da eseguire\n");
            scanf("%d", &sc);
            switch (sc)
            {
                case 1:
                    inser();
                    system("cls");
                    break;
                    
                case 2:
                    visual();
                    getch();
                    system("cls");
                    break;
                
                case 3:
                    system("cls");
                    printf("Uscita dal programma");
                    break;
                    
                default:
                    printf("Scelta errata\n");
                    getch();
                    system("cls");
            }
        }
    }
    
    
    void inser()
    {
        char mycod[5] = "\0";
        int myimp = 0;
        
        nuovo = malloc(sizeof (struct elem *));
        if (nuovo != NULL)
        {
            printf("Inserisci un codice\n");
            scanf("%s", mycod);
            printf("Inserisci un importo\n");
            scanf("%d", &myimp);
            
            strcpy(nuovo->cod, mycod);
            nuovo->imp = myimp;
            nuovo->next = NULL;
            sistema();
        }
        else
            printf("Spazio in RAM insufficiente\n");
    }
    
    
    void sistema()
    {
        if (primo == NULL)
            primo = nuovo;
        else
        {
            corrente = primo;
            while (corrente->next != NULL)
                corrente = corrente->next;
            
            corrente->next = nuovo;        
        }
    }
    
    
    void visual()
    {
        for (corrente = primo; corrente!= NULL; corrente = corrente->next)
            printf("%s\t%d\n", corrente->cod, corrente->imp);
    }
    Ultima modifica di MItaly; 28-01-2015 a 14:42 Motivo: Tag CODE

Tag per questa discussione

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.