Mauricio Caetano 0 Posted August 30, 2010 Report Share Posted August 30, 2010 Preciso fazer um programa que funcionaria assim:Digita-se um número inteiro com 3 algarismo (ex: 127), e mostra-s individualmente na tela, mostrando o número da casa da centena, dezena e unidade...Assim:Digite o número aqui: 129Centena: 1Dezena: 2Unidade: 9Não tenho idéia de como se faz...Alguém pode me ajudar? Quote Link to post Share on other sites
0 kuroi 0 Posted August 30, 2010 Report Share Posted August 30, 2010 se você tirar o resto da divisao por 10 (operador %), você consegue saber o ultimo digito.depois, se você tirar a divisao inteira do numero por 10, você obtem o numero sem o ultimo digito (exemplo, transforma 1234 em 123).tirando o resto de novo, você consegue o proximo digito. e assim por diante. Quote Link to post Share on other sites
0 Mauricio Caetano 0 Posted August 30, 2010 Author Report Share Posted August 30, 2010 E como faz isso no programa? oO (sou iniciante) Quote Link to post Share on other sites
0 Jonathan Queiroz 0 Posted August 30, 2010 Report Share Posted August 30, 2010 Qual o seu conhecimento da linguagem? Sabe declarar variáveis e efetuar operações matemáticas? Quote Link to post Share on other sites
0 Mauricio Caetano 0 Posted August 30, 2010 Author Report Share Posted August 30, 2010 Mais ou menos... Efetuar operacões não Oo Quote Link to post Share on other sites
0 Jonathan Queiroz 0 Posted August 30, 2010 Report Share Posted August 30, 2010 Para efetuar operações você faz algo mais ou menos assim:int a, b, c, d; //declara as variáveis a=34; //atribui o valor 10 à variável "a" b=6; //atribui o valor 6 à variável "b" c=a / b; //efetua a divisão inteira entre 34 e 6 (c=5) d=a % b; //resto da divisão entre 34 e 6 (d=4 pos 34=6x5+4) Veja se isso lhe ajuda. Outra opção é obter diretamente o número como string (se já tiver estudado) e acessar diretamente as posições: char* minhaString="465"; int centena=minhaString[0]; int dezena=minhaString[1]; int unidade=minhaString[2]; Quote Link to post Share on other sites
0 Mauricio Caetano 0 Posted August 31, 2010 Author Report Share Posted August 31, 2010 E como ficaria o programa pronto? Quote Link to post Share on other sites
0 == Douplus == 0 Posted August 31, 2010 Report Share Posted August 31, 2010 (edited) E como ficaria o programa pronto?Não dá pra saber, o programa pronto depende de detalhes do desenvolvedor. Por exemplo, você quer que o programa mostre uma mensagem de erro se o usuário introduzir um número que não tenha dígitos? Como vai armazenar a entrada? Vai separar os algarísmos em instruções diferentes, vai usar uma função recursiva ou um um laço de repetição? O loop será pré-teste ou pós -teste? A string de saída será feita durante o processo de separação ou depois? A string de saída será feita com um switch ou a partir de um array com o nome das casas do número?. Tem que pensar, amigo... Não há uma única possibilidade de projeto, portanto não há uma única solução e portanto não há como dizer como ficaria O programa pornto. Poderíamos fazer um programa pra você (e talvez até cobrar por isso) se fosse esse o objetivo desse fórum, e o seu programa pronto, com a sua maneira de resolver, nunca vai existir a menos que você faça.Simbora, ânimo! Começa analisando o problema::Digita-se um número inteiro com 3 algarismo (ex: 127), e mostra-s individualmente na tela, mostrando o número da casa da centena, dezena e unidade...Assim:Digite o número aqui: 129Centena: 1Dezena: 2Unidade: 9Dividindo-o em problemas menores:1-) Receber um número de 3 algarísmos2-) Separar os algarísmos3-) Montar a string de saída4-) Mostrar a string na telaAgora pensa como vai ficar a main()int main(void) { // Declaração de variáveis // Problema 1: Ler entrada // Problema 2: Separar os algarísmos // Problema 3: montar a string // Problema 4: mostrar a string na tela return 0; } E agora é só começar a resolver... Para o problema 1 o Jonathan sugeriu que o programa recebêsse a entrada com uma string: Pensa na sua função main() int main(void) { // Declaração de variáveis char numero[3]; char *extenso; // Aqui pode se armazenar o número por extenso // ... // mais variáveis?... // Problema 1: Ler entrada printf("Digite um inumero de 3 algarismos: "); scanf("%s", &numero); // Problema 2: Separar os algarísmos // A idéia do Jonathan de ler o número como string já faz com que os algarismos fiquem separados // Problema 3: montar a string // Um loop com 3 repetições? // ... // Problema 4: mostrar a string na tela printf("Numero por extenso: %s", extenso); return 0; }... e por aí vai!P.S.: É claro que você vai fazer o programa usando só o que você já sabe, o seu conhecimento também define o programa final. Outras pessoas conhecem outras coisas implementarão soluções diferentes. Edited August 31, 2010 by == Douplus == Quote Link to post Share on other sites
0 ce1o2e 0 Posted August 31, 2010 Report Share Posted August 31, 2010 (edited) Preciso fazer um programa que funcionaria assim:Digita-se um número inteiro com 3 algarismo (ex: 127), e mostra-s individualmente na tela, mostrando o número da casa da centena, dezena e unidade...Assim:Digite o número aqui: 129Centena: 1Dezena: 2Unidade: 9Não tenho idéia de como se faz...Alguém pode me ajudar?tem uma maneira mais facil se for em C\C++ crie um array char que cada numero vai ficar em um local array[0] = 1 array[1] = 2 array[2] = 9 pronto simples né ^^@editcodigo de exemplo#include <iostream> #include <string.h> using namespace std; int main() { char array[4]; printf("digite um valor: "); cin.get(array, 4); for(int x = 0; x < 3; x++) { cout << "digito: " << array[x] << endl; } cin.get(); cin.get(); return 0; }compilado em dev c++ ... Edited August 31, 2010 by ce1o2e Quote Link to post Share on other sites
0 Mauricio Caetano 0 Posted September 1, 2010 Author Report Share Posted September 1, 2010 // 0000113 -- digite aqui o seu numero de matricula // Jose Garibaldi de Carvalho -- digite aqui o seu nome completo // modelo.c -- digite aqui o nome do programa #include <stdio.h> #include <conio.h> IMP_NOME() { clrscr(); gotoxy(50,1); // se necessario, ajuste a coluna printf("DIGITE AQUI O SEU NOME COMPLETO"); return(0); } main() { IMP_NOME(); // a partir deste ponto desenvolva o seu programa getch(); }Galera, este é um modelo de programa, para iniciarmos apartir daí... Nada de muito avancado aprendemos, então, acho que deve ser o programa mais simples possivel..Como seria? Quote Link to post Share on other sites
0 Mauricio Caetano 0 Posted September 1, 2010 Author Report Share Posted September 1, 2010 Seguinte, recebi um dica:Para fazer aparecer a centena , basta não uttilizar o comando ''float'', e ficará assim:Ex.: O número é 475Se dividi-lo por 100, sem o float, retornaria o 4 (casa da centena)...Mas, se eu não usar o float, qual comando eu uso? Quote Link to post Share on other sites
0 Jonathan Queiroz 0 Posted September 1, 2010 Report Share Posted September 1, 2010 Já foram postado códigos prontos acima (não testei, mas acredito que funcionem). Basta usar como exemplo e, se não entender algo, postar a dúvida mais especificamente (assim é mais fácil ajudar).Em relação a não usar o float, provavelmente foi para efetuar a divisão inteira (como sugerido inicalmente pelo kuroi). Ao invés de float (número de ponto flutuante) você pode utilizar int (número inteiro). Quote Link to post Share on other sites
0 Bruno Cândido 0 Posted September 20, 2020 Report Share Posted September 20, 2020 (edited) Em 30/08/2010 em 10:06, Mauricio Caetano disse: Preciso fazer um programa que funcionaria assim: Digita-se um número inteiro com 3 algarismo (ex: 127), e mostra-s individualmente na tela, mostrando o número da casa da centena, dezena e unidade... Assim: Digite o número aqui: 129 Centena: 1 Dezena: 2 Unidade: 9 Não tenho idéia de como se faz... Alguém pode me ajudar? Boa noite! Se ainda estiver precisando do programa, segue detalhado em C++. #include<stdio.h> #include<stdlib.h> int main() { int u,c,d,auxd,num,inv; // Entrada de dados do usuário. printf("\n=== Terceira Questao ==="); printf("\n\nInsira o numero que deseja inverter: "); scanf("%i",&num); // Cáculo das informações e resultado. c=(int)num/100; auxd=num-(c*100); d=(int)auxd/10; u=num-((c*100)+(d*10)); inv=(u*100)+(d*10)+(c); // Resultado. printf("\nO numero da forma invertido é: %i",inv); printf("\n\nO numero que foi invertido era o: %i",num); return 0; //Fim do programa. } Edited September 20, 2020 by Bruno Cândido Quote Link to post Share on other sites
Question
Mauricio Caetano 0
Preciso fazer um programa que funcionaria assim:
Digita-se um número inteiro com 3 algarismo (ex: 127), e mostra-s individualmente na tela, mostrando o número da casa da centena, dezena e unidade...
Assim:
Digite o número aqui: 129
Centena: 1
Dezena: 2
Unidade: 9
Não tenho idéia de como se faz...
Alguém pode me ajudar?
Link to post
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.