Traccia:
Richiedere all'utente di inserire un numero e stampare singolarmente le cifre che lo compongono.
Implementare il programma con l'ausilio delle funzioni Cifra() e NumCifre().
Strategia:
Dato un numero, ad esempio 8734, per estrarre la terza cifra (quella delle centinaia), è sufficiente dividere il numero per 100 e applicare l'operatore modulo 10 al risultato.
Per le altre cifre si procede in modo analogo.
Svolgimento:
#include <stdio.h>
int Cifra(int Num, int Pos)
{
int i, n, x=1, ret;
for (i=1; i<=Pos; i++)
x=x*10;
n=Num/x;
ret=n%10;
return ret;
}
int NumCifre(int Num)
{
int n, NumCifre=0;
n=Num;
while (n>0) {
n=n/10;
NumCifre++;
}
//Gestione del caso particolare del numero 0
if (Num==0)
NumCifre=1;
return NumCifre;
}
int main()
{
int i, c, nc, n;
printf("Inserire un numero: ");
scanf("%d", &n);
if (n<0)
n=-n;
nc = NumCifre(n);
//Estrazione e stampa di tutte le cifre
for(i=0; i<nc; i++){
c=Cifra(n, i);
printf("Cifra in posizione %d: %d\n", i, c);
}
return 0;
}
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 02. Introduzione al C
Paragrafo: 14. Definizione di funzioni
Approfondimento: 02. Es. svolto: Cifra
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. Hello World - 02. Variabile di tipo int - 03. Input da tastiera - 04. Controllo condizionale if - 05. Operatori logici - 06. Ciclo while - 07. Operatore modulo - 08. Array - 09. Ciclo for - 10. Ciclo do/while - 11. Variabili di tipo float - 12. Funzione random() - 13. Impostazione del set di caratteri - 14. Definizione di funzioni - 15. Passaggio di parametri: gli array - 16. Variabili: visibilità e durata - 17. Il tipo char - 18. I file - 19. Funzioni matematiche
Indice degli approfondimenti: 01. Es. svolto: MCD - 02. Es. svolto: Cifra