Ir ao conteúdo

Posts recomendados

Postado

ALGUEM PODE ME AJUDAR A FAZER UMA DESSAS QUESTÕES

 

Faça um algoritmo que leia caracteres do teclado até que o usuário digite ’0’ (zero). Apos isso, o programa deve apresentar:

 

1. a quantidade de dígitos numericos, exceto o zero, (1,2,3,4,5,6,7,8,9) digitados

2. a quantidade de algarismos maiusculos e minusculos (a,b,c,d,...,z,A,B,C,...,) digitados

3. a quantidade de símbolos (!,,%,&,...) digitados Implemente o algoritmo acima na linguagem C para cada uma das tres estruturas de repetição vistas em sala de aula:

 

• while

• do-while

• for 

  • Curtir 1
Postado

@ericksdjskdj    para começar crie um vetor do tipo char assim:

char vetor[1000];

e mais algumas variáveis aí faça a entrada de dados e posta aí, e para ver se é

número ou letra ou símbolos coloque isso:

for(i=1;i<10;i++){
  if(vetor[cont]==("%c",i+48)){
    num++;    /*total de numeros*/
  }
}
for(i=1;i<27;i++){
  if(vetor[cont]==("%c",i+64 || vetor[cont]=="%c",i+96)){
    letra++;    /*total de letras*/
  }
}
simb=cont2-num-letra;    /*total de simbolos */

os códigos referentes aos dígitos de 0 à 9 vão de 48 até 57, já os códigos referentes

às letras minúsculas vão de 97 até 122 e as letras maiúsculas vão de 65 até 90, então 

os símbolos são os caracteres que não são letras nem números. e é igual o total de

caracteres menos as letras e os números

Postado

Aqui, alguns posts que podem te ajudar a entender melhor o que são chars na linguagem C:

 

As questões desses tópicos envolviam problemas diferentes do seu, mas lidam com caracteres, e os mesmos conceitos de relação entre caracteres e números inteiros devem ser usados no seu programa. Então as respostas podem te ajudar a pegar a ideia do que seu programa deve fazer.

  • Curtir 1
Postado

@ericksdjskdj    esse código ficaria assim :

#include <stdio.h>
#include <string.h>
#include <conio.h>
char tecla[10];
char vetor[1000];
int cont,cont2,num,simb,letra,i;
int main(){
  tecla[0]='1';
  cont=0;
  while(tecla[0]!='0'){
    printf("Digite Qualquer Caractere e Tecle Enter ( Ou Zero Para Sair ) ");
    fflush(stdin);
    scanf("%c",&tecla[0]);
    vetor[cont]=tecla[0];
    cont++;
  }
  cont2=cont-1;
  num  =0;
  letra=0;

  do{
    cont--;
    for(i=1;i<10;i++){
      if(vetor[cont]==("%c",i+48)){
        num++;    /*total de numeros*/
      }
    }
    for(i=1;i<27;i++){
      if(vetor[cont]==("%c",i+64 || vetor[cont]=="%c",i+96)){
        letra++;    /*total de letras*/
      }
    }
  }while(cont >= 0);
  simb=cont2-num-letra;    /*total de simbolos */
  printf("\n\nO Total De Simbolos é= %d\n",simb);
  printf("O Total De Letras   é= %d\n",   letra);
  printf("O Total De Numeros  é= %d\n\n",   num);
  system("pause");
}

 

Postado

 

Você pode usar comparações assim:

unsigned char c;

.
.
.

if (c >= '1' && c <= '9'){
    // se for um digito de 1 a 9
}
else if (toupper(c) >= 'A' && toupper(c) <= 'Z'){
    // senão, se for uma letra
}
else {
    // se for qualquer outro simbolo
}

 

Dessa maneira é mais fácil visualizar e entender o que está sendo comparado, e não é necessário consultar valores inteiros tabelados dos caracteres.

 

Obs: A função toupper() retorna a letra maiúscula correspondente se o caractere for uma letra minúscula, do contrário retorna o próprio caractere, e ela pertence a biblioteca ctype.h.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...