专题课:综合案例5
评委打分
解答:
1.首先肯定要键盘录入6个评委的分数
6个评委的分数,即6个变量,我们肯定用数组更加方便,因为后面求和求最大值之类的,用数组都更简单
遍历数组,我们每键盘打出一个元素就将其放入数组中
.
2.然后定义求和变量,将6个分数求和
3.for循环搭配if筛选求最大、最小值
4.求平均值,总和减去最大最小值再除以对应的个数
注意,这样写是不够准确的,第一,我们在这里把4写死了,不合适。
第二,平均值总会有小数,因此我们使用的是double类型,但是括号里的总和与4都是整数,整数除以整数结果还是整数,因此,我们需要进行优化,如图
把4改成数组长度减2,这样无论数组多长都可以适用(max和min要除去,所以减2)
我们让括号里的总和乘1.0,这样类型就从int改为double,即可避免上面的问题
但是这段代码还存在bug
题目要求要在0~100范围内,结果我们输入-1和2000,程序并没有提醒我们程序出错,因此还需要优化
我们只需在键盘录入的地方优化即可,如果不满足0~100,那我们就不让其数字进入数组。
.
但还存在问题,假设第一个评委的分数不满足0~100,我们就应该重新输入分数,结果这里直接就忽略了评委1,转而跳到了评委2。所以我们还需要优化
优化的方式非常简单,只需要加i--即可
上述优化的解答:
1.i就类似于指针,i=0,指向0号索引,当第一个分数满足条件时,走if进入数组,第一轮循环结束,i++,i变为1
2.i指向1号索引,当第二个评委的分数不满足时,走else,打印、i--,i从1又变为0,指针又回到了0号索引