|
縦方向にヒストグラムを作るにはちょいと面倒なので、横方向のヒスト
グラムを作ってみました。どこか間違っているかもしれませんが、だい
たいこんな感じです。
#include <stdio.h>
#define N 1000
int main(void)
{
int input[N]; /* N個まで */
int hist[10] = {0};
int index;
int sum, i, j;
for (index = 0; index < N; index++)
while (1) {
printf("0〜100の数字を入力して下さい(終わりは-1) : ");
scanf("%d", &input[index]);
if (input[index] < 0) goto next;
else if (input[index] <= 100) break;
else printf("範囲に収まりません\n");
}
next:;
printf("入力した数字は %d 個です。\n", index);
for (sum = 0, i = 0; i < index; i++) sum += input[i];
printf("入力した数字の平均は %.6f です。\n", (double)sum / index);
printf(" ---10---20---30---40---50---60---70---80---90--100\n");
for (i = 0; i < 10; i++)
for (j = 0; j < index; j++) {
hist[i] += (i * 10 <= input[j] && input[j] < (i + 1) * 10) ? 1 : 0;
if (i == 9 && input[j] == 100) hist[i]++;
}
for (i = 0; i < 10; i++) {
printf("%2d〜%3d:", i * 10, (i == 9) ? 100 : (i + 1) * 10 - 1);
for (j = 0; j < 100; j++)
if (hist[i] / 2 > j) putchar('*');
putchar('\n');
}
return 0;
}
|