E aí galera, é o seguinte, to fazendo um exercício onde pede para fazer um programa que peça a usuário que digite um número e imprima a ordem inversa dele. Exemplo: 132, e transformá-lo em 231.
Mas, até agora no curso não se falou de vetores, é o próximo assunto. Tem algum jeito de fazer isso sem usar vetores?
Como vocês podem ver, eu fiz um código porém é muito "Manual", dá pra ir adicionando "if" até o máximo que o tipo int pode aguentar, só que isso exige muito código e não é muito "funcional", entretanto, se vocês notarem os "if", eles apresentam um padrão no aumento, vou ver depois se é possível utilizar esse padrão para "automatizar" o processo sem adicionar tanto "if":
Mas, até agora no curso não se falou de vetores, é o próximo assunto. Tem algum jeito de fazer isso sem usar vetores?
Como vocês podem ver, eu fiz um código porém é muito "Manual", dá pra ir adicionando "if" até o máximo que o tipo int pode aguentar, só que isso exige muito código e não é muito "funcional", entretanto, se vocês notarem os "if", eles apresentam um padrão no aumento, vou ver depois se é possível utilizar esse padrão para "automatizar" o processo sem adicionar tanto "if":
Código:
#include <stdio.h> int inverso (int x) { int x1, x2, x3, x4, x5; if (x < 10) { printf("\n%d", x); } else if (x >= 10 && x < 100) { x1 = x % 10; x2 = (x - x1) / 10; printf("\n%d%d", x1, x2); } else if (x >= 100 && x < 1000) { x1 = x % 10; x2 = ((x % 100) - x1) / 10; x3 = (x - x1 - x2) / 100; printf("\n%d%d%d", x1, x2, x3); } else if (x >= 1000 && x < 10000) { x1 = x % 10; x2 = ((x % 100) - x1) / 10; x3 = ((x % 1000) - x1 - x2) / 100; x4 = (x - x1 - x2 - x3) / 1000; printf("\n%d%d%d%d", x1, x2, x3, x4); } else if (x >= 10000 && x < 100000) { x1 = x % 10; x2 = ((x % 100) - x1) / 10; x3 = ((x % 1000) - x1 - x2) / 100; x4 = ((x % 10000) - x1 - x2 - x3) / 1000; x5 = (x - x1 - x2 - x3 - x4) / 10000; printf("\n%d%d%d%d%d", x1, x2, x3, x4, x5); } } int main () { int x; printf("Digite um numero: "); scanf("%d", &x); inverso(x); }
Comment