できたのでメモしておきます。
プログラム
コードは以下の通りです。
#include <iostream>
# define NUMBER 80
int main()
{
int no;
int i, j;
int tensu[NUMBER];
int bunpu[11] = { 0 };
printf("人数を入力してください。");
do {
scanf_s("%d",&no);
if (no < 1 || no>100) {
printf("1~%dで入力してください。:",NUMBER);
}
} while (no < 1 || no>100);
printf("%d人の点数を入力してください。\n", no);
for (i = 0; i < no; i++) {
printf("%2d番目:",i+1);
do {
scanf_s("%d", &tensu[i]);
if (tensu[i] < 0 || tensu[i]>100) {
printf("0~100の間で入力してください。:");
}
} while (tensu[i] < 0 || tensu[i]>100);
bunpu[tensu[i] / 10]++;
}
puts("\n---分布グラフ---\n");
for (j = 0; j <=9; j++) {
printf("%2d ~ %2d:",j*10,j*10+9);
for (i = 0; i < bunpu[j]; i++) {
putchar('*');
}
putchar('\n');
}
printf(" 100:");
for (i = 0; i < bunpu[10]; i++) {
putchar('*');
}
putchar('\n');
}
実行結果
実行結果は以下の通りです。
人数を入力してください。30
30人の点数を入力してください。
1番目:32
2番目:98
3番目:100
4番目:78
5番目:68
6番目:54
7番目:100
8番目:99
9番目:32
10番目:19
11番目:2
12番目:85
13番目:34
14番目:39
15番目:48
16番目:56
17番目:69
18番目:68
19番目:78
20番目:89
21番目:35
22番目:56
23番目:26
24番目:28
25番目:0
26番目:258
0~100の間で入力してください。:95
27番目:65
28番目:69
29番目:84
30番目:100
---分布グラフ---
0 ~ 9:**
10 ~ 19:*
20 ~ 29:**
30 ~ 39:*****
40 ~ 49:*
50 ~ 59:***
60 ~ 69:*****
70 ~ 79:**
80 ~ 89:***
90 ~ 99:***
100:***
メモ
bunpu[tensu[i] / 10]++;
が肝やなぁ。