C语言,双色球,6个红球(1-32)一个蓝球(1-16)

按下面这么写能保证第三个红球不和第一个重复吗?(就是间隔一个以上的球的情况)

img

这么写可以保证不重复,但是你这个if(i == j)这个注释考虑的不是特别全面,还有一种情况是生成的value与a[i-1]相等,则在内循环判断当j=i-1时,内循环if判断条件成立则i--,j=i-1,下边的if(i == j)条件成立,此时还是会重复赋值一次,不过这次重复赋值赋的是相同的值,没什么影响。