Invertendo dígitos. Escreva uma função que leia um valor inteiro e retorne o número com seus dígitos invertidos. Por exemplo, dado o número 7631, a função deverá retornar 1367

Passo 1

Fala Galeraa!!! Bora escrever essa função juntos!!!

A função terá que analisar cada digito do número. Por exemplo, ao digitar o número 7631 a função irá percorrer todos os dígitos do número 7,6,3,1. Cada digito representa milhar, centena, dezena e unidade respectivamente. Logo para inverter o número o 7 que representa o milhar 7000 tem que virar 7, o 6 representa a centena 600 tem que virar 60, o 3 representa a dezena 30 tem que virar 300 e por fim 1 que representa a unidade tem que virar 1000. Somando os resultados teremos o número invertido 1000+300+60+7 = 1367

Passo 2

Sabendo dessa lógica vamos pôr a mão na massa e escrever nossa função. A principio nossa função irá precisar de 3 variáveis auxiliares. Essas variáveis serão responsáveis por armazenar o número invertido, fazer a divisão e a multiplicação. Criado essas variáveis é preciso de um laço de repetição que percorre todos os dígitos do número.

Passo 3

Para o nosso programa será possível fazer a inversão de números de 1 até 9999. Portanto, o divisor recebe o valor inicial de 1000, ou seja, dentro do laço de repetição é colocado a condição para analisar o primeiro digito de milhar e transformar ele em unidade. Em seguida, os valores do número, do divisor e do multiplicador são atualizados para verificar o próximo digito que será a centena, o processo é repetido até chegar na unidade. Então o programa sai do laço de repetição e retorna a variável responsável por armazenar cada digito invertido. Por fim escrevendo nossa função ela será:

/* função para inverter os digito do número */

int reverseDigitos(int n){

int reverse = 0; /* reverter o número */

int divisor = 1000; /* divisor*/

int multiplicador = 1; /* multiplicador */

/* loop para percorrer todos os dígitos do número */

while (n > 9){

/* se n > = divisor, determinar o digito */

if (n >= divisor){

/* atualizar o número invertido com o digite atual */

reverse += n/divisor * multiplicador;

/*atualizar n */

n %= divisor;

/* atualizar divisor */

divisor /= 10;

/*atualizar multiplicador */

multiplicador *= 10;

} /*final do if */

else { /* caso contrário, sem digito */

/*atualiza divisor */

divisor /= 10;

} /* final do else */

} /* final do while */

reverse += n * multiplicador;

/*retorna número invertido */

return reverse;

} /* fim da função inverter dígitos */

Tudo prontinho!!! Agora é só escrever o nosso programa e partiu próximo exercício.

Resposta

O nosso programa final será: