专题课:综合案例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号索引


3.重点来了,当走完i--时,意味着第二轮循环结束,执行条件判断语句,i++

i又从0变为1,指针又从0移动到1!这样,如果输入的数不符合条件,便可以反复输入,直到满足为止。

收尾:前面我们把代码都堆在了主方法里,所以,我们要将代码一 一改为方法

而方法是一段具有独立功能的代码片段,因此,上述不同的代码有不同的作用,它们是不同的方法

ctrl+alt+m,快速创造方法

initData是初始化数据

在之后如果代码出错,我们就可以ctrl+F12快速查找每个方法,针对优化bug

posted @ 2024-11-16 14:51  直実  阅读(2)  评论(0编辑  收藏  举报