Pular para o conteúdo

Histograma de uma frase

Programa que lê uma frase (até 100 caracteres) e dá a distribuição das letras nela.
Renan Birck Pinheiro Century_Child
Hits: 10.159 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Programa que lê uma frase (até 100 caracteres) e dá a distribuição das letras nela.
Download histograma.c Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

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

// Copyleft '09 Renan Birck

int main() {
   char *frase;
   int numcharsmai[26], numcharsmin[26], i, numast;

   
   printf("***** HISTOGRAMA DE UMA STRING *****\n");
   printf("Por favor note que ele não conta caracteres acentuados. \n");
   
   printf("Introduza a frase: ");
   fgets(frase,100,stdin);
   
   // zera os contadores.
   for(i = 0; i<26; i++) numcharsmai[i] = numcharsmin[i] = 0;
      
   // anda na frase, aumentando o vetor adequadamente.   
   while(*frase) {
      if(('a' <= *frase) && (*frase <= 'z')) numcharsmin[*frase - 'a']++;
      if(('A' <= *frase) && (*frase <= 'Z')) numcharsmai[*frase - 'A']++;
      
      frase++;
   }
   
   // Imprime as letras minúsculas.
   for(i = 'a'; i<='z'; i++) if(numcharsmin[i-'a'])  // se não houver 0 de uma dada letra
   { 
      printf("%c: ", i); 
      for(numast = 0; numast < numcharsmin[i-'a']; numast++)    printf("*"); // um asterisco por letra
      printf( "\t %d \n",numcharsmin[i-'a']);
   }
   
   // Imprime as letras maiúsculas.

   for(i = 'A'; i<='Z'; i++) if(numcharsmai[i-'A']) 
      {
         printf("%c: ", i);
         for(numast = 0; numast < numcharsmai[i-'A']; numast++)    printf("*");
         printf( "\t %d \n", numcharsmai[i-'A']);      
      }
   
   return 0;
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Simulador de banco

Calculadora de operadores lógicos

Crivo de Eratóstenes

Encontrando letras em frases

Busca e ordenação de números

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.