Ir ao conteúdo

Posts recomendados

Postado

linguagem C,

//To nessa gambiarra aqui.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int i,j,count=0;
char str[1000];
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,z=0,w=0,y=0;
                scanf("%d",&n);
                fflush(stdin);
        for(j=0;j<n;j++){

                gets(str);
         for(i=0;str[i]!='\0';i++){
  /*  if(str[i] == 'a' || str[i] == 'b' || str[i] == 'c'||str[i] == 'd' || str[i] == 'e'|| str[i] == 'f'|| str[i] == 'g'|| str[i] == 'h' || str[i] == 'i'
    || str[i] == 'j'|| str[i] == 'k'|| str[i] == 'l'|| str[i] == 'm'|| str[i] == 'n'|| str[i] == 'o'|| str[i] == 'p'|| str[i] == 'q'|| str[i] == 'r'
    || str[i] == 's'|| str[i] == 't'|| str[i] == 'u'|| str[i] == 'v'|| str[i] == 'x'|| str[i] == 'z'|| str[i] == 'w'|| str[i] == 'y'){
               count++;
    }*/
                if(str[i] == 'a' ){
                    a++; a = a-a+1;
                }
                if(str[i] == 'b' ) {
                    b++; b = b-b+1;
                }
                if(str[i] == 'c' ){
                    c++; c = c-c+1;
                }
                if(str[i] == 'd' ){
                    d++; d = d-d+1;
                }
                if(str[i] == 'e' ){
                    e++; e = e-e+1;
                }
                if(str[i] == 'f' ){
                    f++; f = f-f+1;
                }
                if(str[i] == 'g' ){
                     g++; g = g-g+1;
                }
                if(str[i] == 'h' ){
                     h++; h = h-h+1;
                }
                if(str[i] == 'i' ){
                     i++; i = i-i+1;
                }
                if(str[i] == 'j' ){
                     j++; j = j-j+1;
                }
                if(str[i] == 'k' ){
                     k++; k = k-k+1;
                }
                if(str[i] == 'l' ){
                     l++; l = l-l+1;
                }
                if(str[i] == 'm' ){
                     m++; m = m-m+1;
                }
                if(str[i] == 'n' ){
                     n++; n = n-n+1;
                }
                if(str[i] == 'o' ){
                     o++; o = o-o+1;
                }
                if(str[i] == 'p' ){
                     p++; p = p-p+1;
                }
                if(str[i] == 'q' ){
                     q++; q = q-q+1;
                }
                if(str[i] == 'r' ){
                     r++; r = r-r+1;
                }
                if(str[i] == 's' ){
                     s++; s = s-s+1;
                }
                if(str[i] == 't' ){
                     t++; t = t-t+1;
                }
                if(str[i] == 'u' ){
                     u++; u = u-u+1;
                }
                if(str[i] == 'v' ){
                     v++; v = v-v+1;
                }
                if(str[i] == 'x' ){
                     x++; x = x-x+1;
                }
                if(str[i] == 'z' ){
                     z++; z = z-z+1;
                }
                if(str[i] == 'w' ){
                     w++; w = w-w+1;
                }
                if(str[i] == 'y' ){
                     y++; y = y-y+1;
                }


         }
         count = 0;
                count = a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+x+z+w+y;
        // if(count >= 26) printf("frase completa\n");
         //if(count >=26/2) printf("frase quase completa\n");
         //if(count <26/2) printf("frase mal elaborada\n");
         fflush(stdin);
        printf("%d\n",count);
        printf("%d\n",a);
        printf("%d\n",o);
        }

return 0;
}

 

Postado

Aqui eu fiz uma solução e comentei para explicar o que faz:

 

#include <stdlib.h>
#include <stdio.h>

int main(){
  int contador[26] = {0}, //Contadores para as 26 letras do alfabeto incializados em 0
      i, j;
  char frase[1000], c;
  
  frase[0] = '\0';
  fgets(frase, 1000, stdin);
  for(i=0; frase[i] != '\0' && i<1000; i++){
    // Se o caractere for uma letra:
    if ( tolower(frase[i])>='a' && tolower(frase[i])<='z' ){
      //Transforma a letra num número j de 0 a 25:
      j = (int) (tolower(frase[i]) - 'a'); 
      //Incrementa o contador da j-ésima letra do alfabeto:
      contador[j]++;
    }
  }
  
  for(i=0; i<26; i++){
    //Se a letra foi encontrada 1 ou mais vezes na frase:
    if(contador[i] != 0){
      //Obtém o caractere da i-ésima letra do alfabeto:
      c = 'a' + (char)i;
      //Imprime a letra e o número de vezes em que foi encontrada na frase:
      printf("%c: %d\n", c, contador[i]);
    }
  }
  
  return 0;
}

Observe o uso da função tolower() que serve para transformar um caractere de letra maiúscula em letra minúscula, assim só é preciso checar letras minúsculas. Seria possível fazer o oposto usando a função toupper() para transformar em letras maiúsculas.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!