C#中生成中国福利彩票36选7中7个不重复整数

[复制链接]
查看11 | 回复3 | 2009-6-26 12:09:39 | 显示全部楼层 |阅读模式
我这程序只用循环7次而已,就可以完成了
static void Main(string[] args)
{
int[] number = new int[36];///36个数
int[] newNumber = new int[7];///选出的7个数
int i,maxIndex = 35;
for (i = 0; i < 36; i++)///初始化0~35个数
{
number = i;
}
Random rand = new Random();
for (i = 0; i < 7; i++)
{
///随机产生0~35之间的数作为下标
int index = rand.Next(0, maxIndex);
///把产生的下标里的值给新的数组
newNumber = number[index];
///把产生下标的值和第maxIndex个值交换
int tmp = number[index];
number[index] = number[maxIndex];
number[maxIndex] = tmp;
maxIndex--;///自减1,避免下次产生的下标会重复
}
for (i = 0; i < 7; i++)///输出这7个选出的数
{
Console.Write("{0} ", newNumber);
}
Console.Read();
}
回复

使用道具 举报

千问 | 2009-6-26 12:09:39 | 显示全部楼层
改成下面这样就行了
private void button1_Click(object sender, EventArgs e)
{
Random ran = new Random();
List arr = new List();
for (int i = 0; i < 7; i++)
{
arr.Add(ran.Next(0, 36));
for (int j = 0; j < arr.Count - 1; j++)
{
if (arr == arr[j])
{
arr.RemoveAt(i);
i--;
break;
}
}
}
foreach (int var in arr)
{
MessageBox.Show(var.ToString());
}
}
回复

使用道具 举报

千问 | 2009-6-26 12:09:39 | 显示全部楼层
private void btnOk_Click_1(object sender, EventArgs e)
{
Random r = new Random();
txt1.Text = (int)r.Next(1, 36) + "";
txt2.Text = (int)r.Next(1, 36) + "";
txt3.Text = (int)r.Next(1, 36) + "";
txt4.Text = (int)r.Next(1, 36) + "";
txt5.Text = (int)r.Next(1, 36) + "";
txt6.Text = (int)r.Next(1, 13) + "";
txt7.Text = (int)r.Next(1, 13) + "";
}
回复

使用道具 举报

千问 | 2009-6-26 12:09:39 | 显示全部楼层
这个都看不准,你买什么??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行