Histograma de uma frase
Publicado por Renan Birck Pinheiro (última atualização em 07/10/2009)
[ Hits: 9.819 ]
Homepage: http://renanbirck.rocks
Programa que lê uma frase (até 100 caracteres) e dá a distribuição das letras nela.
#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; }
Cálculo de Energia de um Corpo
Uma pequena "CALCULADORA" (apenas SOMA).
Parte 3 - Sessão de estudo sobre VETORES
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Será que eu deveria apreender C/C++ para desenvolver para Linux? (3)
O 1º artigo a gente nunca esquece (3)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (9)