C#定义一个长度为100的数组,往数组里面随机添加1-100个数,不能重复
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#定义一个长度为100的数组,往数组里面随机添加1-100个数,不能重复相关的知识,希望对你有一定的参考价值。
C#语法我不懂。php我倒会点。对于你出的题目我有点疑问:不知道你的意思是“随机添加1-100个数”还是“随机添加1-100之中的某一个数”,我暂且理解为后者。像你要的那个效果实现方法有很多,我这儿有一种,大概原理是定义一个数组,数组的键和值都是是1-100一一对应(如:a[1]=1,a[2]=2...a[100]=100),然后把数组打乱就行了。
其实只是语法不同而已,思路是一样的。
PHP代码:
//说明一下,PHP中任何变量前面都要加个$,语法这么规定的。
$a=array();
for($i=1;$i<=100;$i++)
$a[$i]=$i;
//以上三行代码产生一个键和值都是从1-100的数组a
$b=$a;//这个知道吧,把a赋值给b 操作一个副本,保留原来的a 完全可以不要
for($j=1;$j<=100;$j++)
$rnd=mt_rand(0,99);//mt_rand(val1,val2)函数产生从val1到val2之间的随机整数
$tmp=$b[$j];
$b[$j]=$b[100-$rnd];
$b[100-$rnd]=$tmp;
//以上三行代码交换数组中的两个元素,被替代的元素是$b[$j],替代元素是$b[100-$rnd]
print_r($b); //一个可以直接输出数组的函数,仅仅是用于显示而已 参考技术A 定义一个随机数,定义一个for循环,定义一个键值对的数组,
for(int i=0;i<100;i++){}
然后将随机生成的值存入数组里面,从第二个开始数开始
将生成的数与数组里面的进行对比,如果重复就返回,i--,就ok了本回答被提问者采纳 参考技术B class Program
static void Main(string[] args)
int[] intArray = new int[100];//定义一个整形数组
bool[] assigned = new bool[100];//bool类型数组
Random rand = new Random();//实例化一个Random对象
for (int i = 0; i < 100; i++)
int intindex = 0;
bool foundInt = false;
while (foundInt == false)
intindex = rand.Next(100);
//if语句用来判断随产生地机数是否是第一次出现
if (assigned[intindex] == false)
foundInt = true;
//把第一次产生的随机数赋给数组
intArray[i ] = intindex ;
assigned[intindex] = true;
foreach (int i in intArray)
Console.Write(" 0", i);//输出随机数
Console.ReadLine();//停顿一下
调试过了,行.
呵呵,希望对你有用. 参考技术C int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i]; 参考技术D 利用Hashtable。
Hashtable hashtable = new Hashtable();
Random rm = new Random();
int RmNum = 100;
for (int i = 0; hashtable.Count < RmNum; i++)
int nValue = rm.Next(100);
if (!hashtable.ContainsValue(nValue) && nValue != 0)//去重
hashtable.Add(nValue, nValue);
Console.WriteLine(nValue.ToString());
java数组添加元素,java数组如何添加一个元素
java数组如何添加元素
向数组里添加一个元素怎么添加,这儿总结有三种方法:
1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。
但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;例子如下:
List<Integer> list=new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(2,4); System.out.println(list);
打印结果: [1, 2, 4, 3]
2、思路为先把array转化为list,用list的add()方法添加元素,再把list转化为array。
但这儿会有一个陷阱盲区,在把array转化为list的过程中,使用的asList()方法会返回一个final的,固定长度的ArrayList类,并不是java.util.ArrayList,直接这样利用它进行add()或remove()是无效的。
List<Integer> list=new ArrayList<Integer>(); list=Arrays.asList(sz); list.add(5);
那应该怎么做呢,在定义list的时候就直接对array进行转化,代码如下:
(注意这儿Array类型是包装类,若是一般数据类型记得转化,转化参考我其他博客文章。)
//如 List<String> list=new ArrayList<String>(); // list=Arrays.asList(str); //这样不行,须如下: Integer []sz={3,2}; List<Integer> list=new ArrayList(Arrays.asList(sz));//**须定义时就进行转化** list.add(1,5); Integer[] nsz=new Integer[list.size()]; list.toArray(nsz); System.out.println(Arrays.toString(nsz));
结果输出为:[3, 5, 2]
3、第三个方法思路为创建一个新数组,新数组的大小为旧数组大小+1,把旧数组里的元素copy一份进新数组,并把要添加的元素添加进新数组即可。
以上是菜鸟自我总结,如有错误或更好的建议请大佬们指正。
以上是关于C#定义一个长度为100的数组,往数组里面随机添加1-100个数,不能重复的主要内容,如果未能解决你的问题,请参考以下文章
面试题 一个长度为100的数组,随机插入1-100,不重复,写出大致思路即可;