C#编写1-59区间6个随机彩票生成程序 如何实现去重及排序
调整后的完整代码
int temp; int[] lotto = new int[6]; Random rand = new Random(); for (int i = 0; i < 6; i++) { // 新增重复校验逻辑,重复则重新生成随机数 do { temp = rand.Next(1, 59); } while (lotto.Contains(temp)); lotto[i] = temp; } // 新增升序排序逻辑 Array.Sort(lotto); Console.Write($"The lottery winning numbers are: "); for (int i = 0; i < 6; i++) { Console.Write(lotto[i] + " "); } Console.ReadKey();
改动说明
完全保留原有代码的核心实现逻辑,仅新增两处调整即可满足需求:
- 去重功能:在原随机数生成环节新增重复校验,调用
lotto.Contains(temp)判断当前生成的号码是否已存在于数组中,若存在则重复生成,直到拿到未使用的号码再存入数组,从根源避免重复号码出现 - 排序功能:所有号码生成完成后调用
Array.Sort(lotto)方法直接对数组做升序排序,不需要修改原有输出逻辑即可按要求输出有序号码
注:原代码中拼写错误的lotterry已修正为正确的lottery。
内容的提问来源于stack exchange,提问作者Jenser
相关产品推荐
相关产品推荐

