『新・明解C言語 入門編 第2版』演習問題解答例 8ー10

演習8ー10

問: List8-11のプログラムを元にして、数字文字の出現回数を、*を並べたグラフで表示するプログラムを作成せよ。List5-12や演習5-8と同じ表示を行うこと。

// Ex0810.c
#include <stdio.h>

int main(void)
{
    int i, j, ch;
    int cnt[10] = { 0 };
    
    printf("入力してください:");
    
    do {
        if (ch == '\n') {
            printf("入力してください:");
        }
        if (ch >= '0' && ch <= '9') {
            cnt[ch - '0']++;
        }
     } while ((ch = getchar()) != EOF);
    
    puts("");
    puts("数学文字の出現回数");

    for (i = 0; i < 10; i++) {
        printf("'%d' : ", i);
        for (j = 0; j < cnt[i]; j++)
            putchar('*');
        putchar('\n');
    }

    return 0;
}

コメント

 何度か入力して、終わる時に「CTRL+D」(Macの場合)と操作すれば、それまでに入力した内容の数字の数が出力されます。windwsは「CTR+Z」です。 10行目のprintfはなくしたかったけどできませんでした。

 実行例
 入力してください:abc123
 入力してください:abc123
 入力してください:abc123
 入力してください:
 数学文字の出現回数
 ’0′ :
 ’1′ : ***
 ’2′ : ***
 ’3′ : ***
 ’4′ :
 ’5′ :
 ’6′ :
 ’7′ :
 ’8′ :
 ’9′ :

 


書籍情報


コメント

タイトルとURLをコピーしました