Histograma de uma frase

Publicado por Renan Birck Pinheiro (última atualização em 07/10/2009)

[ Hits: 9.672 ]

Homepage: http://renanbirck.rocks

Download histograma.c




Programa que lê uma frase (até 100 caracteres) e dá a distribuição das letras nela.

  



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;
}

Scripts recomendados

putchar

Algoritmo de ordenação: Selection Sort

Pilha, algoritmos push, pop e imprimir explicados

Calculo de fatorial em C++ com o Qt Creator

Barra de Loading no console


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts