00:00
好,我们接着看数组应用案例的第二一部分,那么第二部分呢?这面有个题大家看到,请求出一个数组的和。和和它的平均值,就是说把它的和求出来,并且呢,把它的平均值也求出来,OK,那这个题呢,其实。从题意上来说,其实挺简单的,但是这里面有几个细节需要跟大家聊一聊。第一个呢,要求用for。第二个这里面还有一个问题,就求平均值的时候呢。大家要注意一个细节,就是说如果我们这个数组是整数。整数数组,那么在求平均值的时候呢,它其实本身它应该是能精确到小数点的,但是默认情况下它返回的也是整数,那么这个平均值就有可能求错了,能理解吗?所以在这里面求平均值的时候,有一个细节,老师在写代码的时候要特意的给大家提出来,来吧,我们现在求下这个平均值的事。
01:01
好,打开我们的笔记,我们一起来完成它。好,打开Vs code老规矩,我们还是。把这个题先放过来,然后所以说我们的思路,其实这个思路挺简单的,就是什么呢?先声明,声明一个数组好,假设我们这个数组呢,我们就推过来,我们就用上面这个数组,好吧,没没没什么问题吧,就用这个上面这个数组没问题,然后呢,然后呢,我们呃,第二步就是求出。求出和,那么用一个变量来求就行。第三步,求平均值。求出平均值即可,好,同学们,我们来一起走一下代码啊,同学们走代码,那代码呢,非常简单,我们第一步先把这个拿过来,因为上面呢,我已经定义过了是吧,所以说我换一个名字吧,叫INT2,我这里故意用的是int数组。待会儿我们注意看求平均值的时候需要注意什么问题,好,那么求和,求这个和的话,我先定一个变量,默认为零。
02:10
没问题吧,默认为零。现在我们便利。便利的时候呢,我们要求用for,那第一个下标我就不关心,我就不要了,能理解吗?因为下标我并不关心,第二个呢,是它的值找一个。Range。对谁进行这个便利啊?对INT2数组便利,那同学们想一想,当我们对这一个数组进行便利的时候,是不是?呃,第一个是它的下标,第二个是他的值,还有印象吧,那因为我现在只关心值,我并并不关心下标,因此呢,我用下划线将这一个下标。的返回值给忽略了,好求和。就是累积。累积求和。累积求和。好的,这那这一款并不难,我们直接用这个运算符就可以搞定,加上谁呀,加上int ar2里面的下标为哦,这样不需要下标了,不需要下标直接用value对不对?好求完了过后呢,我们来把它输出一把。
03:19
好,这样,为了好看,我这来两个换行对不对,两个换行好,我粘贴稿背一下上。把这样输出一下和等于多少呢?是不是就等于我们这个sum。还有一个就是平均值的问题,平均值平均值等于多少呢?来我们也把它运算出来,那平均值就应该是这个和去除以它的数组的大小,对不对?有几个元素啊,那用N计算一下,那INT2完事。那同学们想一想,此时此刻我们计算的时候,这个地方应该也没有错。但是我们在。
04:05
执行这段代码之后,我们看看这个结果会有什么问题没有?来,跑一个。啊,这边有个错误,我们看哪里错了。还是这个地方的问题啊,当时这个地方我们没有把这个类型给他写过来,In对不对,好,这样写就可以了。没问题了吧,这样没问题了,好,我们跑一个。跑起来。并行。我们运行过后,我们发现它的和等于110,平均值22,大家看。总和这个应该问题不大,110这个是应该是对的,对吧,你看把这个去掉吗。把这个加起来,这个是99 99加上11是不是刚好是110,那110的话呢,除以一个五,我们看是多少。110除以五,诶,它这个刚好是个整除的。出一个五。刚好22,那这样子我们为了让它出现一个负,出现一个小数呢,我们故意把这个改一下,改一下从理论上来说就应该是111除以几除以五,这必然会有一个小数点,但是我们发现当我们这样去除的时候,是没有小数点的,对不对?找一个我发现平均值仍然是22。
05:21
为什么呢?同学们好考虑,这个时候其实就出现了一个问题。应该是22.2。但是它除下来是22,显然跟我们平均值是不匹配的。因为你这个时候平均值,你把这个0.2拿掉,那这个省舍去的值就太多了,太大了,不应该舍去,我们应该需要保留到小数点,但问题是在哪里呢?同学们,问题在这里,因为你这是一个整数,是一个in特类型的,而你这个内呢,也是一个int类型的。根据勾浪的运算规则,当。都为int类型的时候,那么这个结果也会是int,显然跟我们要求不一样,怎么处理怎么办?这里一个细节。
06:05
如何让平均值保留,保留到小数点?芭蕾小说。其实非常简单,你把它的数据类型转一下就可以了,是不是以前讲过这个东西啊,转呗,那就FLOAT64。这个把它转了,当然你这个转了过后,你后面这个不转也是不行的,你看啊,一边不转它会报错,因为你这个是个FLOAT60,而下面下面这个呢是一个int,所以说这是不行的,因此还要把这个也要转向。这就是我们go运算的时候的一个规则,大家注意好,把它也转了,再转一下再来执行。同学们,这个对,这点我再说一遍,这点对于我们学Java的,或者是学其他编程语言的有点不太适应。那没有办法,Go让语言设计者他就是这样设计的,他对数据类型是强制要求转换,这样子才能看到这个效果,因为有些数据类型呢,它是默认有一个默认转换精度的,但是我们在前面讲基础的时候,我们知道go浪的这一个数据类型转换呢,都是显示转换,没有所谓的默认转换这个规则,明白吧,所以说这里面我转了,这我也转了,那么这个时候我们再来一执行,我们看一下效果,朋友们请看效果,诶,这时我们可以看到保留到小数点了。
07:28
哪个值?22.2。欧了。好了,同学们,那这个题的考点其实主要就是在这个位置。尤其是对于我们学过其他编程语言的人来说呢,有点不太适应,但就要这么去做好不好?我把这个题的板书给同学们放到笔记里面来。这是这个题的本书。好,那现在呢,我们先把它。截个图。把这块代码呢给大家板述一下。
08:01
欧了。没问题吧,好,我稍微的整理一下。好,同学们,这是我们第三一个题说的求和和这个平均值的一个问题。
我来说两句