O Sistersinspirit.ca ajuda você a encontrar respostas confiáveis para todas as suas perguntas com a ajuda de especialistas. Conecte-se com uma comunidade de especialistas prontos para fornecer soluções precisas para suas perguntas de maneira rápida e eficiente em nossa amigável plataforma de perguntas e respostas. Explore soluções abrangentes para suas perguntas de uma ampla gama de profissionais em nossa plataforma amigável.

Dado um número inteiro de 3 dígitos, calcular o número formado pelos dígitos do número dado na
forma inversa. Por exemplo: se for dado 348, imprimir 843. Verificar se o número tem 3 dígitos.
Alguém sabe como fazer isso em linguagem C?

Sagot :

Resposta:

Explicação:

O maior problema é pegar um dígito individual. Você poderia usar strings, mas isso deixa a questão fácil demais.

Por exemplo, o número 123 deveria gerar a saída 321.

Para pegar a casa das centenas, vemos quantas vezes o número 100 cabe em 123.

Então: 123/100 (divisão inteira!). Nesse caso, resultará em 1.

Para pegar as casas das dezenas, devemos pegar o resto da divisão passada e ver quantas vezes o número 10 cabe nela.

Então: (123 % 100) / 10. 123 % 10 é 23 e 23/10 é 2.

Para pegar as casas das unidades, devemos pegar o resto da divisão passada, ao invés de divisão inteira.

Então ao invés de fazer 23/10, fazemos 23 % 10. É 3.

Juntando tudo, temos 1, 2 e 3, cada um desses valores em variáveis diferentes.

Agora basta colocar tudo junto. A terceira variável é multiplicada por 100 (centenas), a segunda variável é multiplicada por 10 (dezenas), a primeira variável é multiplicada por 1 (ou seja, fazemos nada com ela).

3 * 100 + 2 * 10 + 1 * 1 = 300 + 20 + 1 = 321, que é 123 invertido.