00:01
那接下来我们这个题可以看到啊,是由X和1~1000之间的随机整数X,你告诉你是多少呢?呃,小于100,然后我们看到输入一个第一行,它往你输入一个随机的数X,那是一个正整数,因此我们就定义一个英特类型的X,那接下来们可以输入这个X,那再往下呃,X10 10的话就输入几个数呢?输出10个数,因此后循环E到10IN的I=1 I≤10。12加加。INSOK, 那这边少这个分号啊,补充一下删掉OK啊,1~10的情况你写好了,那接下来我们要输入一个数啊,C输入一个TT是一个临时的变量。啊,把这个题给输入进来啊,OK了,那到这儿基本上我们已经看到的输入样例也完成了啊,那数组呢,我们还没有研究到,那至于说这里面我们输入是哪些数呢?我们来看一下10个数,它是分别数入是啊,24和32 67 40 20 89 340和15,呃,X最大是多少呢?X最大是啊,10啊对吧,这是10,那最大多少呢?最大是100,所以我们这人不应该学转到10,应该学转什么呢?学转到X对不对啊啊应该选到X2X,它是100,那随机数呢,是1000个数,所以1000个数,呃,它有400,有300,因此这个地方大家最容易出现的一个错误就是你的数字太小,但于它有1005 105啊。
01:45
啊,如果考105的话,你就最多只能存储什么呀,100以内的数字啊,而这个老师让你存到1~1000之间的随机整数,这一题要考的是什么?统排K里面的知识点,因此要看的是最后一个数额外加5是1000的。
02:01
能听懂我意思吧。也就是说你还可能会输入400,要给400做什么呀,做计数可以了。好了,那接下来往下看,同学们啊,他说了什么呢?呃。最后将重复的数字去掉,只保留几个呢?一个,我们可以看到这边有没有重复的数字呢?确实存在20和20,还有呢,4×40,哎,有一个两个重复的,再往下就没有重复的了,因此10个数去除两个重复的,还剩几个没有不重复的呢?8个数,因此它就输出一个8。哦,这个8这么回事儿啊,这个8原来是去掉重复之后的。驱虫用什么指点呢?驱虫用桶标记。所以先考统标记,然后再把这8个数输出出来。说出来啊,所以那这个应该怎么做的来呀,For循环,那就找呗,找去掉重复的int I等于几,I=1 I小于等于几啊。
03:05
来问题了啊同学,老师小一点啊XX到底多少呢?最好是100,那能不能把那个400找到呢?找不到啊,对不对啊,找不到那个400那怎么办嘞。啊,不知道问号好吧,问号啊,哎,佳佳,当时我们说完T之后呢,我们可以给T什么呀,我们可以T处理一下,咱们说T等于什么呀,等于啊标记为1。对吧,这就为1啊,那这个时候我们如果让大家找的话,直接找到,找到1000买啊找1000,那如果说同学们啊,AI不是啊。0是1是1的话呢,CT啊。大家。对吧,再加,那最后我们就输出一下这个CT可以了,那CT定义了吗?没定义好,定义一下逗号CT。
04:05
老师写在外面了,可以的,这个写在外面,初始之为能写在一起吗?可以写在一起啊,那我们来测试一下啊,可不可以,是不是大好,我们来运行一下这个程序,老师没写完呢,我这没写完,我们先看一下有没有8这个数啊,OK.穿过来,果然是啊。老师,这个就不明白了,你别往上写了,我这就不明白了,为什么明白同学啊,我不明白他为什么刚好是8而不是10。哦,OK, 如果不明白,就说明大家对这个代码还是有些陌生的。啊,就是这么一个陌生的啊,那我们还是回过来看这幅图啊。啊,还是看这幅图可以了,呃,这个图太多了,我们就小一点啊,我们把一部分给它删掉可以了,来。
05:00
不要了,我们只要那么几个数,给图呢,我们只要那么几个数。这个1我要。因为我们就随便写那么几个数,大家肯定能够想到它们是存在什么呀,重复的数嘛啊。好,那我们就来写这些啊啊,我们这边简单造他们几个数啊,比方说让你输入一个2,然后输入一个3,再输入一个4,再输入一个2,再输入一个啊1啊一共输入几个数呢?一共输入了。5个数字啊,大家发现这里面有没有重复的,哎,是有重复的啊,也就是说去找一下呗,这里面哪个数是我们可以做标记的啊,首先2找到2,那2是什么呀?2就是啊。第二。A等于几呢?
06:01
哎,一。那就找到它,给它标记为1OK,给他黑色的。推就完了,那再找谁啊?A3了,A3也给它标记为1,好,那就给他也标记为1。好,把它也变成黑色的。再找就是4,那给4也标记为1,好,它也是1,那再找啊,就是应该是我们的A4了。他就一一再找个谁啊。A2 a2再折解为1,有必要动吗?还是是没有必要动了,因此这个数你还有必要再去标记吗?没必要了,因为它已经是1了,再标记还是1啊。你能听懂吗?同学们啊,已经标记好了啊,所以在标记还是1,就像你做一个题一样,1+1=2,你已经把答案写出来了,老师说同学们把答案再写一遍,还有必要写吗?你再描一遍是不是还是2,对不对,所以这个就不用再标记了,那接下来再往下就是把谁呢?就是把这个。
07:15
最后一个啊,标记一下是1,因此我们就发现,虽然老师输入这5个数,但去掉重复之后剩几个数呢?那4个数,那就4个数被标记了。这4个数。OK吗?同学们能不能听懂我意思啊?没问题吧啊,这是是不是被标记了啊,好,那我们回过来这个题目里面来看,这个题目共10个数,有有有两个重复的,20和40啊,因此去掉重复的剩8个数,所以我们在最开始做标记的时候,就已经把它们变成了几个呢?变成我们要的。
08:02
8个数了,被标记了对吧。8个数被标记了,因此在GI在循环过程中,AI一定是找的嘛,找的是只有8个数,所以CNG统计之后就变成几个数了。是8呀,你能不能听懂我的意思啊,啊,OK, 那老师我有第二个问题,为什么你要循环到1000,而不是循环到。X, 如果我们学问到X,会出现什么样的问题?同学们来看一下。看同学们看一下啊,那接下来老师运行一下这个程序啊。我输入进来,你看有几个数啊,0个数,为什么呢?因为你的X是几啊,这是10,这里边有没有小于10的数字啊,没有,A15 a20都找不着,因为你最大的范围就是A0到A9。
09:00
你能听懂我的意思啊,OK, 所以他不能写成X,他得写大一点,他写多大呢?老师,他一共最后的一个数有可能是1000吗?有可能是1000,所以我才要考虑到哪里呀,1000。能听懂吧,好了,那这就给大家把这里面存在两个点给大家说了啊,那我们要找的过程中肯定找什么呀,找不是0的嘛,就是这个呃,蓝色区域1的,所以我的判断是如果它等哎,如果它什么呀,不等于什么呀。0啊,老师一般写不等于0,大家可以写成等等于1,都没问题,OK吧,啊,都没问题啊,OK.那再往下,那把他们。输出这个应该怎么输出呢?我们就循环输出嘛,呃,For循环从小到大去输出可以了。好,那这个的输出。我们来看啊for循环近的老师,怎么这个代码有三个for循环呢?是的,因为你用到了两个东西啊,接下来2减几呢?I=1 I≤2还1000 I加加老师,为什么这地方还是1000呢?因为你要输出460数字啊。
10:18
OK吧,400个数字啊,那接下来输出一下,如果什么呀,如果AI不是0的话,你就输出呗,哎,混合一下对吧,那接下来我们来看它可不可以,但是如果让他们看得更合理,符合我们格式的话,这个地方需要什么呀?啊好。是吧,需要换行啊,OK, 那接下来我们再测试一下看看。15对,八十五,二十三十二,四十六十七,89,三百四百老师我有问题啊,什么问题呢?那答案对了,但是我现在有一个问题在于,为什么巧了,这个题你写完之后就是还好正确。
11:08
它为什么是二十四十三十二输出呢?因为你的循环它是从小到大按照顺序循环,你知道你的最早是什么呀,你最早循环是A1 a1里面存着几啊。A 1里面什么也没存,老师啊。啊,A1里面存了吗?没有存,A2里面存了吗?也没有存,那你最小就是A几啊,最小的时候就是A15 a15存完之后就把15是出了,A10没有存,A17没有存,A18没有存,也就是说这个循环循环多少遍啊A对喜欢是前遍。你听懂了吧,它循环了1000遍,然后呢,中间为什么只输出8个数呢?因为有992个数,它不符合我们的条件,没有执行if,能听懂了吧,只有8个数符合我们的if,这8个数依次进行输出,从小到大输出,所以才是十五,二十三,十二,四十,这就已经有什么规律了,排序的规律了,所以我们才叫到统排序,那什么一刚才同学就问到老师说老师这题目他有必要用到那个冒泡或者选择吗?没必要,因为统排序它本身就是什么呀,从小到大的去找或从大到小。
12:23
那如果从大到小呢,就是for循环的倒序,能听懂我的意思吗?OK了,这题就完成了,那么提交一下看可不可以了啊,来走,哎,不对,错了啊,这题不对,第3题了。说看第三题,第三题还是第三题是吧?啊是第三题啊过了啊是第三题那就过了,嗯,一二十五是吧,今天吧,啊是这个题没错是吧,我看错题了,问问卷调查对吧?嗯,OK了。
我来说两句