Advertisement
Wolfrost

C Esercizio ore studente

Apr 10th, 2016
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Nell'array Ore_Studio sono memorizzate le ore passate a studiare da uno studente
  2. // per ogni giorno del mese (valori da 0 a 4)
  3. // Calcola e visualizza il numero totale di ore passate a studiare nel corso del mese
  4. // il giorno (o i giorni) in cui lo studente in cui lo studente ha studiato per un numero
  5. // maggiore di ore e il numero di giorni in cui non ha aperto libero
  6.  
  7.  
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <time.h>
  11.  
  12. main()
  13. {
  14.     // Genero il seed
  15.     srand((unsigned)time(NULL));
  16.    
  17.     // Dichiaro Ore_Studio
  18.     int Ore_Studio[31]; // Considero un mese ideale di 31 giorni
  19.    
  20.     // Dichiaro le variabili che devo calcolarmi
  21.     int ore_studio_totali = 0;
  22.     int quantita_giorni_sgobbone = 0;
  23.     int quantita_giorni_zero = 0;
  24.     int giorni_sgobbone[31];
  25.    
  26.     // Riempio Ore_Studio di ore che ovviamente io non farei mai
  27.     int i;
  28.     for (i=0; i<31; i++)
  29.     {
  30.         Ore_Studio[i] = rand() % 4;
  31.         giorni_sgobbone[i] = -1;
  32.     }
  33.    
  34.     // Trovo ore_studio_totali
  35.     for (i=0; i<31; i++) ore_studio_totali += Ore_Studio[i];
  36.    
  37.     // Devo trovare inanzitutto "il numero maggiore di ore"
  38.     // Perchè con molta probabilità è 4, ma se per caso non dovesse generare mai un 4?
  39.     int max = -1;
  40.     for (i=0; i<31; i++) if (Ore_Studio[i]>max) max = Ore_Studio[i];
  41.    
  42.     // Adesso ho "max" che indica il "numero maggiore di ore"
  43.     // Posso calcolare quanti giorni ha passato a studiare per questo "numero maggiore" di ore
  44.     for (i=0; i<31; i++) if (Ore_Studio[i]==max) quantita_giorni_sgobbone++;
  45.    
  46.     int k = 0;
  47.     for (i=0; i<31; i++)
  48.         if (Ore_Studio[i]==max)
  49.         {
  50.             giorni_sgobbone[k] = i+1;
  51.             k++;
  52.         }
  53.        
  54.     // Stranamente l'esercizio chiedeva sta cosa solo per il numero maggiore di ore
  55.     // Mentre per le ore = 0 posso anche fare un contatore come gli altri
  56.     for (i=0; i<31; i++) if (Ore_Studio[i]==0) quantita_giorni_zero++;
  57.    
  58.     // Stampo la vita
  59.     printf("Ore_Studio[] = \n");
  60.     for (i=0; i<31; i++) printf("%d\n",Ore_Studio[i]);
  61.     printf("Numero totale di ore passate a studiare: %d\n",ore_studio_totali);
  62.     printf("Il numero maggiore di ore studiate e' %d\n",max);
  63.     printf("Lo studente ha studiato per %d ore nei giorni:\n",max);
  64.     for (i=0; i<quantita_giorni_sgobbone; i++) printf("%d\n",giorni_sgobbone[i]);
  65.    
  66.     system("PAUSE");
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement