Bunich

Untitled

Nov 20th, 2017
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //nell'es 2 devi inizializzare c=1 e i=1, inoltre si può fare meglio modificando il while in questo modo:
  2. int c=5,s=0;
  3. while(c<=100){
  4.     s=s+c;
  5.     c=c+5;
  6.     /*senza mettere nessuna condizione, scelgo io di incrementare c
  7.     di 5 ogni volta e l'iterazione sarà anche più veloce.*/
  8. }
  9. printf("La somma vale: %d",s);
  10.  
  11. //anche l'es.7 si poteva migliorare come il 2:
  12. int c=7,s=0;
  13. while(c<=100){
  14.     s=s+c;
  15.     c=c+7;
  16.     /*senza mettere nessuna condizione*/
  17. }
  18.  
  19. //es.6:
  20.     /*Il problema della tua versione è che hai stampato il risultato all'interno del while.
  21.     Che il numero sia primo o no, lo saprai solo al termine dell'iterazione, dopo aver controllato
  22.     tutti i casi possibili. Un altro problema è che il problema ti chiede di contare i divisori,
  23.     ossia quei numeri per cui n/divisore ha resto 0: n%k=0*/
  24.     int n, k=2, divisori=0;
  25.     printf("Inserire un numero: ");
  26.     scanf("%d",&n);
  27.     while(k<n){
  28.         //conto i divisori
  29.         if(n%k==0){
  30.            divisori++;
  31.         }
  32.         k++;
  33.     }
  34.     //esco dal ciclo e faccio le considerazioni necessarie
  35.     if(divisori==0){
  36.         printf("Il numero è primo\n");
  37.     }
  38.     else{
  39.         printf("Il numero non è primo\n");
  40.     }
  41.  
  42.  
  43.      //es.9
  44.     /*conviene scrivere le if senza incasinare troppo il codice, altrimenti diventa più difficile
  45.     trovare gli errori. Anzi che scrivere:*/
  46.     if(a<b){
  47.     }
  48.     else{
  49.         //scambia i valori
  50.     }
  51.     /*è meglio scrivere*/
  52.     if(a>b){
  53.         //scambio i valori
  54.     }
  55.     //condizione sbagliata nel while:
  56.     while(i>=a && i<=b){ ma non va bene lo stesso:
  57.     while(a<=b){
  58.         //devo sommare i numeri compresi tra a e b, quindi sommo al totale a e lo incremento
  59.         //non serve i
  60.         s=s+a;
  61.         a++;
  62.     }
  63.  
  64.  
  65.     //es. 11
  66.    /*
  67.    1) manca l'input
  68.    2) s=s+1/n;
  69.    3) int i=1;
  70.    */
  71.  
  72.     //es. 12
  73.     /*non si può scrivere la potenza così, devi usare il metodo usato
  74.     nell' esercizio fatto assieme, coi prodotti, oppure fare:  */
  75.     #include <math.h>
  76.     float s;
  77.     //[...] nel while:
  78.     s=s+pow(i,i);
  79.  
  80.     //es.13
  81.    /*
  82.    1) int i=1; perchè altrimenti viene contato anche lo 0 nei multipli, es: 0%3=0
  83.    2) modificare l'istruzione della sostituendo != con ==:
  84.         if(i%5==0 || i%3==0){
  85.       cioè se il resto della divisione è 0
  86.    */
RAW Paste Data