Cプログラミング言語(第2版)1-14


プログラムを作成し、入力中の各文字の出現頻度のヒストグラムを印刷します.
 
#include<stdio.h>

void main(){
	int letters[26];
	for(int i=0;i<26;i++)
		letters[i]=0;
	int c;
	//a	c=getchar();
	int charA=65;//A ascii  65,a ascii 97
	int chara=97;

	while((c=getchar())!=EOF){
		getchar();//     
		if(c-charA<26&&c-charA>=0){
				letters[c-charA]++;
		}
		else if(c-chara<26&&c-chara>=0){
			letters[c-chara]++;
		}
	}
	for(int j=0;j<26;j++)
	{
		printf("%c %c    :",charA+j,chara+j);
		for(int k=0;k<letters[j];k++)
		{
			printf("%s","*");   
		}
		printf("%s","
"); } }

以上が入力したアルファベットをテストする頻度です.
 
#include<stdio.h>

void main(){
	int letters[127];
	for(int i=0;i<127;i++)
		letters[i]=0;
	int c;

	while((c=getchar())!=EOF){
		getchar();
		letters[c]++;
	}
	for(int j=0;j<127;j++)
	{
		if(letters[j]!=0){
			printf("%c    :",j);
			for(int k=0;k<letters[j];k++)
			{
				printf("%s","*");   
			}
			printf("%s","
"); } } }