/*
输入学生的分数并纵向显示分布图
*/
#include <stdio.h>
#define NUMBER 80
int main()
{
int num, max_bunpu;
int tensu[NUMBER];
int bunpu[11] = {0};
printf("请输入学生人数:");
do
{
scanf("%d", &num);
if (num < 1 || num > NUMBER)
printf("\a请输入1~%d的数:", NUMBER);
} while (num < 1 || num > NUMBER);
printf("请输入%d人的分数\n", num);
for (int i = 0; i < num; i++)
{
printf("%2d号:", i + 1);
do
{
scanf("%d", &tensu[i]);
if (tensu[i] < 0 || tensu[i] > 100)
printf("\a请输入1~100的数:");
} while (tensu[i] < 0 || tensu[i] > 100);
int tmp_bunpu = ++bunpu[tensu[i] / 10];
max_bunpu = tmp_bunpu > max_bunpu ? tmp_bunpu : max_bunpu;
}
puts("\n-------------------分布图-------------------");
for (int i = max_bunpu; i > 0; i--)
{
for (int j = 0; j < 11; j++)
if (bunpu[j] >= i)
printf(" * ");
else
printf(" ");
putchar('\n');
}
puts("--------------------------------------------");
for (int i = 0; i < 11; i++)
printf("%-4d", i * 10);
return 0;
}
《明解C语言(入门篇)》练习5-9
最新推荐文章于 2023-08-11 12:51:03 发布