09. Operatore %
Esercizio
Acquisire due numeri interi nelle variabili A, B e stampare in successione la cifra delle unità (senza segno) di tutti i numeri compresi nell'intervallo [A; B].
Esempio di esecuzione n. 1:
Inserire due numeri interi: -3 18
3 2 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
Esempio di esecuzione n. 2:
Inserire due numeri interi: 21 26
1 2 3 4 5 6
Svolgimento
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, ii, A, B;
printf("Inserire due numeri interi: ");
scanf("%d %d", &A, &B);
printf("\n");
for (i=A; i<=B; i++){
if (i<0)
ii=-i;
else
ii=i;
printf("%d ", ii%10);
}
return 0;
}
Commento
Nel ciclo for la variabile ii è utilizzata per considerare i numeri compresi nell'intervallo [A; B] senza segno.
In fase di stampa la cifra delle unità è calcolata considerando il resto della divisione per 10. Ad esempio:
27:10 = 2 con resto 7 (che coincide con la cifra delle unità).
────══════♦☆♦══════────
Esercizio
Acquisire due numeri interi nelle variabili N, T verificando che siano rispettate le seguenti relazioni:
0<N<20 e N<T<10N
Nel caso le relazioni non siano entrambe rispettate richiedere nuovamente l'input.
Stampare una sequenza di T termini strutturata come indicato di seguito
0 1 2 ... N-1 0 1 2 ... N-1 ...
Esempio di esecuzione n. 1:
Inserire due numeri interi: -3 6
Input errato. Ripetere l'inserimento: 5 22
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1
Esempio di esecuzione n. 2:
Inserire due numeri interi: 4 7
0 1 2 3 0 1 2
Svolgimento
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N, T, i;
printf("Inserire due numeri interi: ");
scanf("%d %d", &N, &T);
while(!(0<N && N<20 && N<T && T<10*N)){
printf("Input errato. Ripetere l'inserimento: ");
scanf("%d %d", &N, &T);
}
printf("\n");
for (i=0; i<T; i++){
printf("%d ", i%N);
}
return 0;
}
Commento
Il ciclo for è strutturato per stampare T termini.
L'indice è incrementato ad ogni iterazione.
In corrispondenza della stampa, sull'indice è applicato l'operatore modulo che provvede a calcolare il resto della divisione per N.
Naturalmente il resto della divisione per N può essere un numero compreso tra 0 e N-1.
────══════♦☆♦══════────
Esercizio
Acquisire due numeri interi nelle variabili A, B e stampare tutti i numeri compresi nell'intervallo ]A; B[ che risultano essere pari o multipli di 11 .
Lo zero è considerati pari.
Esempio di esecuzione:
Inserire due numeri interi: -3 18
-2 0 2 4 6 8 10 11 12 14 16
Svolgimento
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, A, B;
printf("Inserire due numeri interi: ");
scanf("%d %d", &A, &B);
printf("\n");
for (i=A+1; i<B; i++){
if (i%2==0 || i%11==0)
printf("%d ", i);
}
return 0;
}
Commento
Per verificare la divisibilità di un numero è stato utilizzato l'operatore modulo. In particolare si è verificato che il resto della divisione fosse zero.
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 05. Esercizi svolti
Paragrafo: 09. Operatore %
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