Nel seguente programma:
#include <stdio.h>
int reverseDigits( int n);//Prototipo di funzione
int main() {
printf("%s", "Numero iniziale:");
int number;
scanf("%d", &number);
//trova il numero con le cifre invertite
printf("Il numero invertito: %d\n", reverseDigits(number));
}
//reverseDigits restituisce il numero ottenuto invertendo le cifre di n
int reverseDigits(int n)
{
int reverse = 0;//numero invertito
int part = 0;//variabile temporanea per cifre singole
while(n>1) {
part = n % 10;
reverse = reverse * 10 + part;
n = n / 10;
}
return reverse;//restituzione di numero invertito
}
Non mi è chiaro come opera il ciclo while, cioè non riesco a capire come opera questa parte:
while(n>1) {
part = n % 10;
reverse = reverse * 10 + part;
n = n / 10;
Comprendo perfettamente che lo stesso ciclo lavora sui singoli numeri e infatti se io inserisco il numero iniziale 7631, il ciclo while esamina il primo numero è fa i seguenti cacloli:
7%10=7
ma poi non comprendo quello che fa nella parte successiva e cioè questa:
reverse = reverse * 10 + part;
n = n / 10;
Cosa è che fa in questa parte per me incriminata?