发布网友 发布时间:2024-10-23 20:33
共4个回答
热心网友 时间:2024-11-12 00:54
List<int> roles=new List<int>(); //用来保存中奖名单
Random ran=new Random(); //随机数
do{
int role=ran.nextInt(1,51); //随机获取 1-50的随机数
if(!roles.Contians(role)) //如果这个人没有中奖过
{
roles.Add(role); //添加到中奖列表
}
}while(roles.count<5); //当中奖列表不到5个人就继续循环
热心网友 时间:2024-11-12 00:51
可以使用随机数!产生一个1—10的随机数,然后比对判断,获得三等奖,产生一个1—100的随机数,比对判断,true得二等奖,产生一个1—1000的随机数~~以此类推,忘采纳
热心网友 时间:2024-11-12 00:49
假定人员编号是0-49,简单点的比如从从0循环到49,将当前位置的数字与0-49之间的一个随机位置数字互相交换。循环完后人员就是随机排列的,从最前面依次取5个就行了。
热心网友 时间:2024-11-12 00:53
int 中奖人数 = 5;
int 参与人数 = 50;
if(中奖人数 > 参与人数)throw new Exception("本程序假定一个人不能中奖两次!");
int[] 中奖人编号 = new int[中奖人数];
var rnd = new Random((int)DateTime.Tick);
for(int n = 0; n < 中奖人编号.Length; n++){
bool 计算出了中奖编号 = false;
while(计算出了中奖编号 == false){
中奖人编号[n] = rnd.Next(1, 参与人数);
计算出了中奖编号 = true;
for(int m = n; m > 0; m--){
if(中奖人编号[m-1] == 中奖人编号[n]){
计算出了中奖编号 = false;
break;
}
}
}
}
liuxilink|四级 已是正解,不用管我的