Suelen Posted June 22, 2022 at 02:10 PM Report Share #626281 Posted June 22, 2022 at 02:10 PM tem como me ajudar fazendo apenas com <stdio.h> eu achei esse aqui mas tem coisas nele que eu ainda nao estudei, entao queria saber se tem como usar só <stdio.h> #include <stdio.h> #include <conio.h> #include <string.h> main () { int num, a, i; char tam[10]; printf("Digite\t"); scanf("%d",&num); if (num < 0){ num = -num; } sprintf(tam,"%d",num); a = strlen(tam); printf("Valor Absoluto"); for (i=0;i<a;i++) printf("\n|%c| = %c ",tam[i],tam[i]); getch(); return 0; } Link to comment Share on other sites More sharing options...
Rodrigo Casanova Posted June 25, 2022 at 12:21 AM Report Share #626297 Posted June 25, 2022 at 12:21 AM #include <stdio.h> int main() { int num; scanf("%d", &num); /* tamanho do numero */ const int DIVISOR = 10; int Dividendo = num; int numLength = 1; while (Dividendo > DIVISOR) { Dividendo = (int) (Dividendo / DIVISOR); numLength++; }; /* descobrir que digitos constituem o numero */ char aux[30]; sprintf(aux, "%d", num); printf("\nO numero que inseriu e constituido por:"); for (int i = 0; i < numLength; i++) { printf("\n%c", aux[i]); } return 0; } Espero que seja isto que procura, porém não tenho a certeza... Mas caso seja, aqui vai a explicação: Para obter o número de dígitos que o utilizador inseriu eu usei uma matemática bem simples que funciona da seguinte maneira. Dado um número inteiro e positivo como por exemplo 999, começamos por fazer 999 / 10 = 99 (sem casas decimais), pegamos agora no resultado do anterior.. 99 / 10 = 9, como 9 < 10, a operação chegou ao fim. O importante desta operação era contar o número de operações que fiz, neste caso fiz 2 operações, porém o número 999 tem 3 algarismos então meti o contador a começar em 1 em vez de começar em 0. Após a lógica do número de algarismos estar concluída, chegou a altura de separar os diferentes algarismos. Para isso passei o número para uma string facilitando o processo de output para o terminal e depois foi só iterar. Espero que a minha solução seja o que queria e espero que a minha explicação tenha sido clara o suficiente! Tenho a notar que a minha solução funciona apenas para números inteiros e positivos. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now