プログラミング+α学習ブログ

勉強したことの備忘録です。

入力に出現する数字をカウントして横向きの棒グラフで表示するプログラム

#include <stdio.h>

int main(void)
{
    int i, j, ch;
    int cnt[10] = {0};  // 数字文字の出現回数
    
    while (1) { // 無限ループ
        ch = getchar();
        if (ch == EOF) break;
        
        if (ch >= '0' && ch <= '9')
            cnt[ch - '0']++;
    }
    
    puts("数字文字の出現回数");
    for (i = 0; i < 10; i++) {
        printf("'%d':", i);
        for (j = 0; j < cnt[i]; j++)
            putchar('*');
        putchar('\n');
    }
    return (0);
}

実行結果

3.1415926535897932846
数字文字の出現回数
'0':
'1':**
'2':**
'3':***
'4':**
'5':***
'6':**
'7':*
'8':**
'9':***