Jump to content
Fórum Script Brasil
  • 0

Ajuda no C


Question

12 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other 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.

Edited by == Douplus ==
Link to post
Share on other 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++ ...

Edited by ce1o2e
Link to post
Share on other 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 to post
Share on other 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 to post
Share on other 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.

}

Edited by Bruno Cândido
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148886
    • Total Posts
      644905
×
×
  • Create New...