演習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′ :
書籍情報
コメント