Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda no C


Mauricio Caetano

Pergunta

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 para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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];

Link para o comentário
Compartilhar em outros sites

  • 0
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: 129

Centena: 1

Dezena: 2

Unidade: 9

Dividindo-o em problemas menores:

1-) Receber um número de 3 algarísmos

2-) Separar os algarísmos

3-) Montar a string de saída

4-) Mostrar a string na tela

Agora 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.

Editado por == Douplus ==
Link para o comentário
Compartilhar em outros sites

  • 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?

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é ^^

@edit

codigo 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++ ...

Editado por ce1o2e
Link para o comentário
Compartilhar em outros sites

  • 0

//          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?

Link para o comentário
Compartilhar em outros sites

  • 0

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).

Link para o comentário
Compartilhar em outros sites

  • 0
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.

}

Editado por Bruno Cândido
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...