05. if/else

Esercizio

Acquisire un numero intero e determinare se esso soddisfa o meno la seguente proprietà:

è pari o multiplo di 3 o multiplo di 7.

Esempio di esecuzione n. 1:


Inserire un numero intero: 33

Il numero soddisfa la proprietà


Esempio di esecuzione n. 2:


Inserire un numero intero: 11

Il numero non soddisfa la proprietà


Svolgimento


#include <stdio.h>

#include <stdlib.h>

int main()

{

int a;

printf("Inserire un numero intero: ");

scanf("%d", &a);

if ( (a/2*2 == a) || (a/3*3 == a) || (a/7*7 == a) )

printf("Il numero soddisfa la proprieta'\n");

else

printf("Il numero non soddisfa la proprieta'\n");

return 0;

}

Commento

Per scelta didattica la parità di un numero è verificata sfruttando la proprietà di troncamento della divisione tra interi piuttosto che con l'operatore modulo %.


────══════♦☆♦══════────


Esercizio

Acquisire quattro numeri interi.

Determinare quanti di essi soddisfano ciascuna delle seguenti proprietà;

    • è un numero negativo

    • è un numero positivo composto da una cifra

    • è un numero positivo composto da due cifre

    • è un numero positivo composto da tre cifre

    • è un numero positivo composto da almeno quattro cifre

Si tratti lo zero come numero positivo.

Esempio di esecuzione:


Inserire quattro numeri interi: 5 -7 11 4733

Conteggio dei numeri negativi: 1

Conteggio dei numeri positivi composti da una cifra: 1

Conteggio dei numeri positivi composti da due cifre: 1

Conteggio dei numeri positivi composti da tre cifre: 0

Conteggio dei numeri positivi composti da almeno quattro cifre: 1


Svolgimento


#include <stdio.h>

#include <stdlib.h>

int main()

{

int a, b, c, d, contN, cont1, cont2, cont3, cont4;

printf("Inserire quattro numeri interi: ");

scanf("%d %d %d %d", &a, &b, &c, &d);

contN=0;

cont1=0;

cont2=0;

cont3=0;

cont4=0;

if (a<0)

contN++;

else if(a<10)

cont1++;

else if(a<100)

cont2++;

else if(a<1000)

cont3++;

else if (a>=1000)

cont4++;

if (b<0)

contN++;

else if(b<10)

cont1++;

else if(b<100)

cont2++;

else if(b<1000)

cont3++;

else if (b>=1000)

cont4++;

if (c<0)

contN++;

else if(c<10)

cont1++;

else if(c<100)

cont2++;

else if(c<1000)

cont3++;

else if (c>=1000)

cont4++;

if (d<0)

contN++;

else if(d<10)

cont1++;

else if(d<100)

cont2++;

else if(d<1000)

cont3++;

else if (d>=1000)

cont4++;

printf("Conteggio dei numeri negativi: %d\n", contN);

printf("Conteggio dei numeri positivi composti da una cifra: %d\n", cont1);

printf("Conteggio dei numeri positivi composti da due cifre: %d\n", cont2);

printf("Conteggio dei numeri positivi composti da tre cifre: %d\n", cont3);

printf("Conteggio dei numeri positivi composti da almeno quattro cifre: %d\n", cont4);

return 0;

}

Commento

Notare che le proprietà indicate nell'esercizio sono alternative e per questo motivo si sfrutta la clausola else.

Ad esempio la condizione

else if(a<100)

è testata solo nel caso in cui il numero non è negativo e non è composto da una cifra.