Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
carloszexa4

C Contar quantos digitos tem em um número n.

Recommended Posts

Receba dois inteiros do usuário, o primeiro sendo o dígito que se quer saber quantas vezes aparece e o segundo sendo o número. A entrada tem que ser um valor inteiro qualquer para A entre 1 e 9, e um valor inteiro para B. E na saida deve mostrar quantas vezes o digito A aparece no número B. A reposta tem que ser um programa básico usando for ou while.

 

Editado por carloszexa4
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola...! Não é nada "difícil"

#include<stdio.h>/*!< Incluir as rotinas que fazem Entra e Saída (E/S). */
#include<ctype.h>/*!< incluir as rotinas com tratamento de caracteres.  */

/** *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *
 * func principal -  aqui você vai encontrar as seguintes palavras chaves:
 * isdigit, while, break, if, else, sprintf, getchar, char, int,
 * strings em C. <<! Estude cada uma delas !>>
 **/
int main( void )
{ char digito;            /*< para o dígito A */
  int  numero;            /*< para o número B */
  char numero_str[ 0xFF ];/*< para o numero B strings */
  char aux;
  int qtd_digitos_iguais_digitos; /*< para o número de ocorrencias de A->B.*/

  /*! pegar o digito A */
  while( !isdigit( digito = getchar()));

  /*! força o numero B */
  while ( 1 != scanf( " %d", &numero))(void)getchar();

  sprintf( numero_str, "%d", numero );/*< imprimir número no strings.      */

  aux = 0; qtd_digitos_iguais_digitos = 0;
  while( numero_str[ aux ] !=   '\0' )/*< escaneando em busca do digito A. */
  { if ( numero_str[ aux ] == digito )
      qtd_digitos_iguais_digitos++;
    aux++; }

  printf( "%d\n", qtd_digitos_iguais_digitos );/*< resultado final         */
  /*! FIM */
  return( 0x0 ); }

 

~~ / ~~

Editado por Simon Viegas
Alterar tipo de CODE para "C Languages"
  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mauro Britivaldo    de acordo com o enunciado,  a entrada precisa ser um inteiro e não um char, e ele não disse que seja positivo, mas creio que seja apenas positivo,   e para inteiro o valor positivo máximo que se pode entrar é 2.147.483.647 , então o código seria assim :

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int main(){
    int a,b,d,i,c=15,rep=0;
    int vetor[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    do{
        printf("Digite Um Numero Inteiro De 1 ate 9 ");
        fflush(stdin);
        scanf("%d",&a);
        if(a<0||a>9)
            printf("Numero Fora De Faixa, Digite outro !\n");
    }while(a<0 || a>9);
    do{
        printf("   Digite Um Numero Qualquer\n");
        printf("Positivo De 0 ate 2.147.483.647 -%c",16);
        fflush(stdin);
        scanf("%d",&b);
        if(b<0||b>2147483647)
            printf("Numero Fora De Faixa, Digite Outro !\n");
    }while(b <0 || b>2147483647);/*eh o valor maximo para inteiros*/
    d=b;
    while(b>0){
        vetor[c]=b%10;
        b/=10;
        c--;
    }
    for(i=15;i>-1;i--){
        if(vetor[i]==a)
            rep++;
    }
    if(rep>0){
        printf("O Digito %d Apareceu %d Vez",a,rep);
        if(rep>1)printf("es");
        printf(" no Numero %d . . . !\n\n",d);
    }
    else
        printf("O Numero %d Nao Teve Nenhum Numero Repetido . . . !\n\n",b);
    return 0;
}

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>

int main()
{
    int numeroA = 0, numeroB = 0;
    
    printf("Informe um numero(Na faixa de 1 a 9): ");
    scanf("%i", &numeroA);
        
    if (numeroA < 0 || numeroA > 9)
    {
        printf("O numero informado esta fora da faixa.\nTente novamente com um numero na faixa de 1 a 9.\n");
        return 0;
    }
    
    printf("Informe um numero qualquer: ");
    scanf("%i", &numeroB);
    
    int qntVezes = 0, tempNum = numeroB;
    
    while (tempNum)
    {
        if (numeroA == (tempNum % 10))
            qntVezes++;
        
        tempNum /= 10;
    }
    
    printf("O numero %i apareceu %i %s no numero %i.\n", numeroA, qntVezes, (qntVezes != 1) ? "vezes" : "vez", numeroB);
    
    return 0;
}

 

Só precisa de uma verificação simples se o número informado é maior que o limite de um int(2147483647).

Editado por cyer
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos...

 

@Mauro Britivaldo, @devair1010 e @cyer... tá. Gostaria de aproveitar a oportunidade para tirar uma dúvida: qual foi a produtividade do "exercício proposto" ao @carloszexa4?

 

 

Então, sobre o contexto desse tópico... pelo que eu entendi, o "exercício" passou a ser algo como:

Citação

Encontre alguém para fazer por você o seguinte algoritmo: Receba dois inteiros do usuário, o primeiro sendo o dígito que se quer saber quantas vezes aparece e o segundo sendo o número. A entrada tem que ser um valor inteiro qualquer para A entre 1 e 9, e um valor inteiro para B. E na saida deve mostrar quantas vezes o digito A aparece no número B. A reposta tem que ser um programa básico usando for ou while.

 

:lol:

 

 

 

adicionado 0 minutos depois

No caso: #missãoCumprida

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 minutos atrás, Simon Viegas disse:

qual foi a produtividade do "exercício proposto"

Foi um exercício fácil do qual já tenho lido bastante e faço sem esforço, existe muitos livros gratuitos de C onde qualquer pessoa com força de vontade pode ler antes de vir aqui. Sempre que tenho tempo os leio, então penso que todos podem fazer igual a mim, esse é meu hobby! Eu mal consigo acreditar que exista ainda pessoas com esse tipo de dúvida, só espero que ao ver os exemplos de hoje tome alguma atitude.

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas  em resposta a sua pergunta: talvez passando um pouco o tempo.

 

"Encontre alguém para fazer por você o seguinte algoritmo...", realmente foi isso que aconteceu, mas talvez não tenha sido em vão, talvez ele olhe como o código funciona e estude o que cada linha faz e consiga aprender algo, resultando no ganho de conhecimento ou talvez ele apenas de um Ctrl+C e Ctrl+V e envie para o professor da faculdade para ganhar os seus pontos.

 

De qualquer forma acredito estar ajudando ele(Seja passando conhecimento ou ajudando ele ganhar os pontos na faculdade ou ambos).

Editado por cyer
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×