#include <stdio.h>
#define NUMBER 80 /*人数上限*/
int main(void) {
/*为了测试方便,以下学生人数、分数,按照代码清单5-12右侧运行结果直接赋值*/
int i,j;
int num = 15; /*实际的人数*/
int tensu[NUMBER] = {17,38,100,95,23,62,77,45,69,81,83,51,42,36,60}; /*学生的分数*/
int bunpu[11] = {0,1,1,2,2,1,3,1,2,1,1}; /*分布图*/
int bunpuCol[NUMBER][11] = {0}; /*纵向分布图*/
int bunpuTmp[11] = {0}; /*分布图备份*/
int bunpuMax; /*分布图最大值*/
bunpuMax = bunpu[0];
for (j=0; j<11; j++) {
bunpuTmp[j] = bunpu[j]; /*将分布图复制到bunpuTmp*/
if (bunpu[j]>bunpuMax)
bunpuMax = bunpu[j];
}
for (i=0; i<bunpuMax; i++) { /*将分布图转录为纵向分布图*/
for (j=0; j<11; j++) {
if (bunpuTmp[j]!=0) {
bunpuCol[i][j] = 1; /*将分布图中的*转录为二维数组中的标记*/
bunpuTmp[j]--;
}
}
}
for (i=bunpuMax-1; i>=0; i--) { /*上下颠倒输出*/
for (j=0; j<11; j++) {
if (bunpuCol[i][j]==1)
printf ("%2c%c%2c",32,'*',32);
else
printf ("%5c",32);
}
putchar ('\n');
}
puts("-------------------------------------------------------");
printf (" %d %d %d %d %d %d %d %d %d %d %d \n"
,0,10,20,30,40,50,60,70,80,90,100);
getch (); /*屏幕暂留*/
return 0;
}
运行结果
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d043ad4bd11373f0aa86e60aae0f4bfbfaed04ed?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)