用C#做出(1-100)随机抽出十个整数输出判断不能重复
有两种思路:1、随机生成一个1-100的数,然后判断重复,如果重复再生成一次;
2、创建一个数组,元素内容为1-100,对元素随机排序。
请参考下面的代码
public void GenerateRandomNums()
{
List list = new List();
Random rand = new Random();
int value;
while (true)
{
if (list.Count == 20)
{
Console.WriteLine("U should get the 20 random numbers. ");
break;
}
value = rand.Next(1, 21);
if (!list.Contains(value))
{
list.Add(value);
}
}
foreach (int temp in list)
{
Console.WriteLine("Num:{0}.", temp);
}
}
第二种思路:
int[] a = { 1, 2, 4, 5, 3, 6, 7, 8 };
int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
foreach (int v in b)
Console.WriteLine(v);
Console.ReadKey();
见以下程序
using System;using System.Collections.Generic;using System.Linq;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { int[] a = Generate(); Print(a); int max = Max(a); int indexOfMax = IndexOfMax(a); Console.WriteLine("Max={0}, Index={1}", max, indexOfMax); int min = Min(a); int indexOfMin = IndexOfMin(a); Console.WriteLine("Min={0}, Index={1}", min, indexOfMin); } /// /// 随机生成10个0到100之间的互不相同的整数 /// /// static int[] Generate() { HashSet s = new HashSet(); Random rnd = new Random(); while (s.Count /// 输出所有元素 /// /// static void Print(int[] a) { foreach (int v in a) { Console.WriteLine(v); } } /// /// 并求出最大数 /// /// /// static int Max(int[] a) { int v = a[0]; for (int i = 1; i /// 并求出最小数 /// /// /// static int Min(int[] a) { int v = a[0]; for (int i = 1; i a[i]) v = a[i]; } return v; } /// /// 最大数对应的数组元素下标 /// /// /// static int IndexOfMax(int[] a) { int v = a[0]; int index = 0; for (int i = 1; i /// 最小数对应的数组元素下标 /// /// /// static int IndexOfMin(int[] a) { int v = a[0]; int index = 0; for (int i = 1; i a[i]) { v = a[i]; index = i; } } return index; } }}
public static int[] GetRandom(int minValue, int maxValue, int count)
{
Random rnd = new Random();
int length = maxValue - minValue + 1;
byte[] keys = new byte[length];
rnd.NextBytes(keys);
int[] items = new int[length];
for (int i = 0; i < length; i++)
{
items[i] = i + minValue;
}
Array.Sort(keys, items);
int[] result = new int[count];
Array.Copy(items, result, count);
return result;
}
用C#做出(1-100)随机抽出十个整数输出判断不能重复
利用函数GetRandom(1,100,10)即可获取 public static int[] GetRandom(int minValue, int maxValue, int count){ Random rnd = new Random();int length = maxValue - minValue + 1;byte[] keys = new byte[length];rnd.NextBytes(keys);int[] items = new int[length];for (int i =...
c#,创建一个程序,要求产生10个随机整数(1~100),将这十个数从小到...
var rand = new Random()int arr = new int[10];for (int i = 0; i < 10; i++) arr[i] = rand.Next(1, 101);foreach (var k in arr.OrderBy(c=>c)) Console.Write("{0,4}", k);Console.ReadKey();
C#中怎么获取1到100的随机数
第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:Random ro = new Random();第二种方法可以指定一个int型参数作为随机种子:int iSeed=10;Random ro = new Random(10);long tick = DateTime.Now.Ticks;Random ran = new Random((int)(tick & 0xffffffffL) | (int) (tick >> ...
C#用timer控件实现1~100随机数抽奖,已经抽中的不参与下一次循环,求代码...
private void button1_Click(object sender, EventArgs e){ timer1.Enabled = true; \/\/开Timer}写Timer的Tick事件 private void timer1_Tick(object sender, EventArgs e){ \/\/加原子锁,由于随机可能时间过长,造成多线程进入,污染DBList对象 if (Interlocked.Exchange(ref inTimer, 1) ...
C#用timer控件实现1~100随机数抽奖,已经抽中的不参与下一次循环,求代码...
我用多线程写的,你可以参考下。系统界面图如下:(注:重置功能为清除已经中奖号码,回归1-100都可以中奖状态。)代码:public partial class Form1 : Form { public Form1() { InitializeComponent(); } System.Threading.Thread g_Thread = null; List<int> g_list = new...
随机产生10个100以内的整数,并从大到小排列。
for (x=0;x<100;x++){ ch[x] = rand()%100+10;\/\/给你个例子吧,用rand来产生随机数 } for (x=0;x<100;x++){ for (y=0;y<100;y++){ if (ch[x]>ch[y]){ ch[x] ^= ch[y];ch[y] ^= ch[x];ch[x] ^= ch[y];} } } for (x=1;x<=100;x++){ printf("...
C#随机产生一个10位数的一维数组,输入任意一个数,插入到数组的第三...
{ static void Main(string[] args){ \/\/创建一个Random对象 Random random = new Random(); \/\/创建一个长度为10的一维数组 int[] array = new int[10]; \/\/用随机数填充数组 for (int i = 0; i < array.Length; i++){ \/\/生成一个0到100之间的随机整数 array[i] =...
c#怎么实现取1-100之间的随机数
Random r = new Random();int num = r.NextInteger(1,101);这样随机数才是1-100.那个函数是不包括上限在内的
用rand 函数编一个程序 在1到100 中随机抽取一个数
不知道你是怎么显示这个数字?你可以采用以下方法试试:(C#代码)Random rd = new Random();int n=rdrd.Next(100);(如果是textbox:textBox1.Text = rd.Next(9).ToString();)
用C#控制台编写一个,随机产生1到100的数,然后猜大小
Console.WriteLine("输入一个1到100之间的数 ");inputNumber=Convert.ToInt32(Console.ReadLine());if(inputNumber>guessNumber){ Console.WriteLine("大了");System.Threading.Thread.Sleep(500);} else if(inputNumber<guessNumber){ Console.WriteLine("小了");System.Threading.Thread.Sleep(500);...