Separando dígitos em um inteiro. Escreva um programa que leia um número de cinco dígitos, separe o número em dígitos individuais e imprima os dígitos separados um do outro por três espaços cada um. [Dica: use combinações
da divisão inteira e da operação módulo.] Por exemplo, se o usuário digitar 42139 , o programa deverá exibir 4 2 1 3 9
Passo 1
Fala galera, tudo bem? Bora começar mais uma! Este exercício foi bem chato, mas consegui fazer do jeito que o livro pedia. Para começar, o código foi escrito para que ele fizesse essa separação com qualquer número de 5 dígitos. Então fiz todo o passo inicial da escrita de um código em C e irei explicar os passos mais importante. Como o livro pede para usarmos somente o que aprendemos até o capítulo 2, foi bem trabalhoso. Mas a matemática está aí para isso. Essa dica que ele deu de usar divisão de inteiros e operação com módulo foi de grande ajuda.
Imagine o seguinte: Temos o número 42139 e queremos usar a dica do livro.
A primeira coisa é dividir por um valor que possa sobrar apenas a casa de milhar. Então criamos algumas variáveis inteiras:“int num, num0, num1, num2, num3, num4” Cada variável dessa vai corresponder a um número que será impresso na tela separadamente.
num = 42139, então pegamos a variável e dividimos por 10000. Perceba que 10000 têm a mesma quantidade de números da nossa variável “num”. Em uma divisão por inteiros, vamos sempre ter resultados inteiros. O primeiro resultado será 4: Tipo 42139/10000 = 4 (primeiro número), resto é 2139.
Então as variáveis serão:
num0 = num/10000 -----------------> 4
num1 = (num/1000)%10 —--------> 2
num2 = (num/100)%10 —----------> 1
num3 = (num/10)%10 —------------> 3
O que fizemos aqui foi uma jogada com divisão e restos. Cada vez que mudamos de variável como de num0 para num1, também alteramos as casas decimais do divisor e o seu resultado é dado com a operação modular “%” que faz a separação. Mas, são 5 números e ali tem apenas 4. O que houve com o quinto? Bem, a variável num4 vai ser dada pela combinação da variável num, com todas as as outras casas decimais e o operador “%”. Com isso teremos:
num4 = (num%10000%1000%100%10) por mais estranho que esta linha possa parecer para você, ela está simplesmente seguindo a ordem da operação com “%” até chegar no último termo.
Depois dessa ideia de divisão inteira e operador módulo, você vai seguir com o procedimento de printf ( ) e inserir alguma frase. Eu por exemplo fiz assim:
printf ("O número %d foi digitado separadamente %d %d %d %d %d \n", num, num0, num1, num2, num3, num4);
Aqui optei pela frase que apresenta o número que vc escreveu, dado pelo primeiro “%d” (valor inteiro que seria “num”), acompanhado da frase “será digitado separadamente: %d %d %d %d %d \n, num, num0, num1, num2, num3, num4” onde estamos pegando todas as variáveis que foram dadas separadamente para após nossa operação com divisão e módulo. Dessa maneira o código fica do jeito que a figura abaixo mostra. A última figura contém a resposta e o comando para compilar o código em C para o caso de uma distribuição linux. Perceba que usei um outro número mas, você pode usar o mesmo número do exercício. Espero ter ajudado e vamos para mais um exercício. Valeu!!