题目要求是:用C#,在1—15随机得到15个随机数,存入数组,并要求不重复。。。
staticvoidMain(string[]args){int[]a=newint[15];int[]b=newint[15];Randomran=newRandom(...
static void Main(string[] args) { int[] a = new int[15]; int[] b = new int[15]; Random ran= new Random(); for (int i=0; i < 15; i++) { b[i] = ran.Next(1, 16); bool z = ((System.Collections.IList)a).Contains(b[i]); while( z==false) { b[i] = ran.Next(1, 16); } a[i] = b[i]; } for (int i=0; i < 15; i++) { Console.WriteLine("{0}", a[i]); } } } } 请各位大侠帮帮忙。。。找了一下午了。。。不晓得哪里错了。。。
展开
展开全部
static void Main(string[] args) { int[] b = new int[15]; ArrayList list=new ArrayList(); random r=new random(); int a=0; for(int i=0;i<15;i++) { a=r.next(1,16); if(list.Contains(a)) { i--; } else { list.add(a); } } for(int j=0,j<list.count;j++) { b[j]=Convert.ToInt32(list[j]); Console.WriteLine("{0}", b[j]); } } 你第一个for循环的问题是:不管数组中有没有存在新产生的随机数i都会+1;你应该判断一下如果存在让i-1让i停留在当前值继续循环,否者产生的随机数不够15个 static void Main(string[] args) { int[] a = new int[15]; int[] b = new int[15]; Random ran= new Random(); for (int i=0; i < 15; i++) { b[i] = ran.Next(1, 16); bool z = ((System.Collections.IList)a).Contains(b[i]); if( z==false) { b[i] = ran.Next(1, 16); a[i] = b[i]; } else { i--; } } for (int i=0; i < 15; i++) { Console.WriteLine("{0}", a[i]); } } } }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询