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.
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 05. Esercizi svolti
Paragrafo: 05. if/else
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. printf e scanf - 02. Swap di variabili - 03. if - 04. Numeri pari - 05. if/else - 06. while - 07. Controllo dell'input - 08. for - 09. Operatore % - 10. Funzioni - 11. Tipo float - 12. Tipo char - 13. Stringhe - 14. File