Advertisement
DanieleCalisti

Untitled

Dec 7th, 2022
561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | Software | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct pizza{
  5.     char *nome;
  6.     float prezzo;
  7. } pizza;
  8.  
  9. void caricaPizze(pizza*, int);
  10. void stampaMenu(pizza*, int);
  11.  
  12. int main() {
  13.  
  14.     int n;
  15.     pizza *pizze;
  16.  
  17.     printf("Inserisci numero di pizze: ");
  18.     scanf("%d", &n);
  19.  
  20.     pizze = malloc(n*sizeof(pizza));
  21.  
  22.     if(!pizze)
  23.     {
  24.         printf("Spazio di memoria esaurito!");
  25.         return 0;
  26.     }
  27.  
  28.     caricaPizze(pizze,n);
  29.     stampaMenu(pizze,n);
  30.  
  31.     return 0;
  32. }
  33.  
  34. void caricaPizze(pizza *p, int n)
  35. {
  36.     int i, nCaratteri;
  37.     float appo;
  38.  
  39.     for(i=0;i<n;i++)
  40.     {
  41.         printf("Inserici numero di caratteri per la %d° pizza: ", (i+1));
  42.         scanf("%d", &nCaratteri);
  43.  
  44.         (p+i)->nome = calloc(nCaratteri+1, sizeof(char));
  45.  
  46.         printf("Inserisci il nome della %d° pizza: ", (i+1));
  47.         scanf("%s", (p+i)->nome);
  48.  
  49.         /*
  50.             ERRORE
  51.  
  52.             Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
  53.             printf("Inserisci prezzo pizza: ");
  54.             scanf("%f", (p+i)->prezzo);
  55.         */
  56.  
  57.         //Alternativa funzionante
  58.         printf("Inserisci il prezzo della %d° pizza: ", (i+1));
  59.         scanf("%f", &appo);
  60.  
  61.         (p+i)->prezzo = appo;
  62.     }
  63.  
  64. }
  65.  
  66. void stampaMenu(pizza *p, int n)
  67. {
  68.     int i;
  69.  
  70.     printf("\n#\t\tNOME\t\tPREZZO\t\n");
  71.  
  72.     for(i=0;i<n;i++)
  73.         printf("%d\t\t%s\t\t%0.2f€\n",i, (p+i)->nome, (p+i)->prezzo);
  74.  
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement