printf("请输入学生人数:");
do{
scanf("%d",&num);
if(num<1 || num>NUMBER)
{
printf("请输入1~%d之间的整数:",NUMBER);
}
}while(num<1 || num>NUMBER);
printf("请输入%d人的分数。\n",num);
for(i=0;i<num;i++)
{
printf("%d号:",i+1);
do{
scanf("%d",&score[i]);
if(score[i]<0 || score[i]>100)
{
printf("请输入0~100之间的整数:");
}
}while(score[i]<0 || score[i]>100);
scattergram[score[i]/10]++;
}
max=scattergram[0];
for(i=1;i<11;i++)
{
if(scattergram[i]>max)
{
max=scattergram[i];
}
}
max_x=max;
for(i=0;i<max_x;i++)
{
for(j=0;j<11;j++)
{
if(max>scattergram[j])
{
printf(" ");
}
else
{
printf("* ");
}
}
putchar('\n');
max -= 1;
}
printf("--------------------------------------------\n");
for(i=1;i<=11;i++)
{
printf(" %d ",(i-1)*10);
}
putchar('\n');
return 0;
我想问下他的max_x=max到下面循环为啥max-=1,max的值不是我输入每个下标的元素吗,假如输入三个人的分数,max里面是1还是3呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在给定的C语言代码片段中,
max
变量用于追踪scattergram
数组中最大频率的数值。scattergram
数组记录了分数段(每段10分)内学生分数的分布情况。当
max_x
被设置为max
的值时,它保存了数组中的最大频率。随后的循环:for(i=0;i<max_x;i++) { // ... max -= 1; }
这个循环的目的在于可视化
scattergram
数组中的数据。通过逐行打印星号(*
),从最大频率开始,逐渐减少直到0,形成了一个直方图。每次迭代,max
都减1,这确保了下一行的星号数量比上一行少,从而创建了一个下降的直方图效果。例如,如果
scattergram
的最大频率为5,那么max_x
也将是5。在这个例子中,循环将执行5次,每次打印的星号数量依次为5、4、3、2、1。这是因为每次迭代,max
都会减1,而max
用于决定当前行是否应该打印星号。为了更清晰地理解这一点,让我们考虑一个具体的例子。假设有10名学生的分数分布如下:
- 分数在0-9之间:2人
- 分数在10-19之间:1人
- 分数在20-29之间:3人
- 分数在30-39之间:0人
- 分数在40-49之间:2人
- 分数在50-59之间:1人
- 分数在60-69之间:0人
- 分数在70-79之间:1人
- 分数在80-89之间:0人
- 分数在90-99之间:0人
那么
scattergram
数组将会是:[2, 1, 3, 0, 2, 1, 0, 1, 0, 0]
。在这个示例中,
scattergram
的最大频率是3(即scattergram[2]
),因此max
和max_x
都将初始化为3。接下来的循环将产生如下输出:* * * * * * * * * * * * * -------------------------------------------- 0 10 20 30 40 50 60 70 80 90 100
在这个输出中,可以看到每一行的星号数量从最多3个递减到最少1个,直观地展示了学生分数的分布情况。
综上所述,
max
变量在循环中减1是为了动态调整直方图的高度,确保每一行的星号数量正确反映scattergram
数组中对应频率的大小。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
- ¥100 求Web版SPC控制图程序包调式
- ¥20 指导如何跑通以下两个Github代码
- ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
- ¥15 C++为什么这个代码没报错运行不出来啊
- ¥15 一道ban了很多东西的pyjail题
- ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
- ¥15 C++识别堆叠物体异常
- ¥15 微软硬件驱动认证账号申请
- ¥15 GPT写作提示指令词