编写复赛分组情况VB
vb吧
全部回复
仅看楼主
level 6
问题有点多[委屈]感觉懂又不懂,所以来问问大佬们,,有问题的地方标了序号。 就是第一个group(k)那个是表示每个大组中有几小组的意思吗。第二个不大理解find()怎么操作的,(找出组K中的K?)[小乖](我这么理解的,就不懂……)第三个就是,record是标记什么,为啥是(k-1*3+w)。 最后就也差不多是不大理解record()这个意思[委屈]
2021年07月26日 13点07分 1
level 11
题目有点问题,Function find(ByVal m As Integer这一行代码m前面加一个ByVal,否则应该是不严谨的。然后回答问题:
第一个,k表示城市由字母转化得到的编号,而group(k)表示的是k城市加上当前的i选手一共已经分析了几名选手。
第二个,如果当前的i选手成绩比已经排序的record选手还好就把他们往后挤,find结束后下一行代码可以看到i选手自己成为record选手。
第三个第四个,record记录的是最终分组前三名结果,record(1)表示A市第1名,record(2)表示A市第2名,而record(4)表示B市第1名,record(5)表示B市第2名这样。
2021年07月26日 19点07分 2
那那个w=find(group(k),k)这个什么意思,怎么算w[乖]
2021年07月27日 12点07分
level 11
可以看出这里的m只能是2或3。进入find,record((k-1)*3+m-1)代表的是k市第m-1名,record((k-1)*3+m)则代表k市第m名。如果i选手成绩好于第m-1名,则第m名被第m-1名挤掉,然后m减1再重来。如果i选手成绩没有好于第m-1名,则find返回m。m如果减小到1则立刻让find返回m就是返回1。返回后k市第w名也就是第返回值名变成i选手,这样i选手在k市排上了正确的名次。[汗]
2021年07月27日 14点07分 3
1