

其实加个打印就知道了。
while (s!=1); 反过来想,也就是s为1的时候结束,那if(b[i]>b[i+1])这个判断必须只能满足一次。
if(b[i]>b[i+1]) 翻译过来就是 前一个大于后一个,我们知道,原来的牌组是单调递增的,如果最后洗成原来一样,前面都是小于后面的,怎么出现大于的情况呢?
注意最后一个for循环 i的取值范围,i<2n,所以最后一次的b[i+1]其实就是b[2n],而数组的下标是从0开始的,所以这里的b[2n]其实就是牌组之外的数据,也就是一开始的0,那么最后一张牌就可以大于后一个,就是我们要找的。