用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); //一个可以直接输出数组的函数,仅仅是用于显示而已
添加了直接运行:
class getRandowArray
{
public getRandowArray()
{
arr = new int[100];
}
int[] arr;
///
/// 检查数组中是否已存在此数
///
/// ture为已存在
private bool checkNumber(int arrlist)
{
for (int i = 0; i < arrlist; ++i)
{
if (arr[i] == arr[arrlist])
return true;
}
return false;
}
///
/// 生成数组
///
/// 数组
public int[] produceRandomArray()
{
Random rd=new Random();
for (int i = 0; i < 100; ++i)
{
//int temp=0;
do
{
//temp = rd.Next(1, 101);
//arr[i] = temp;
arr[i] = rd.Next(1, 101);
}
while (checkNumber(i));
}
return arr;
}
}
class Program
{
static void Main(string[] args)
{
getRandowArray produceArr = new getRandowArray();
int[] arr = produceArr.produceRandomArray();
for (int i = 0; i < arr.Length; ++i)
{
Console.WriteLine(arr[i]);
}
}
}
楼上是第一个,结果b数组值为1~100排序的数。
下面是第二个,结果数字是随机的,但插入是顺序插入的代码如下:
int[] arr = new int[100];
Random r = new Random(DateTime.Now.Millisecond);
for(int i=0;i<100;i++)
{
int temp = r.Next(1, 100);
while(true){
if (Array.IndexOf(arr, temp) == -1)
{
arr[i] = temp;
break;
}
else
{
temp = r.Next(1, 100);
}
}
System.Console.WriteLine(arr[i]);
}
System.Console.Read();
这个算法效率会有点低,为了防止重复,循环越到后面尝试的随机数会越来越多。
可以改为多创建一个值为1~100的数组,随机取里面的值放到新数组,然后删去,这个就自己去实现吧。
试试这个方案:
先定义一个数组,例如int a[100];
初始化数组:
for(int i=0;i<100;i++){
a[i]=0;
}
假设生成的数组为b,程序如下:
int k=0;
Random r=new Random();
while(k<100){
int index=r.Next(100);
if(a[index]==0){
b[k++]=index+1;
a[index]=1;
}
}
用c#面向对象的方法编写程序,要求用户在文本框中输入1到10之间的一个...
2. 编写输出语句,提示要求输入数字,若要退出游戏则输入0,否则输入1。用if 语句控制程序,如果输入其他数值,输出提示“你的输入有误!”。3. 编写输入语句代码,并用int.Parse()方法将字符串转换为数值,将输入数值与产生随机数相比较,并根据不同的比较结果输出相应的提示信息。class Program { sta...
如何设计一个程序:程序随机产生10个100以内的整数,将这些整数按照从大到...
用C#环境写 拖拽label组件 label.Text=new Random().Next(100,10).ToString(); 就ok了
C#中怎样用Random产生1到10之间的随机数
1、@echo off rem 用Random产生1到10之间的一个随机数 set num=%random set \/a num=num%%10+1 echo %num 1到1000:2、rNumber.Next(1,1000);Random rNumber = new Random();\/\/实例化一个随机数专对象 rNumber.Next(1,10);\/\/产生一个1到10之间属的任意一个数 rNumber.Next(1,1000)...
用c#语言编写程序,创建一个长度为n的整型数组,要求:1输入n个整数再输出...
for(int j=i-1;j>=0;j--){ if(a<num[j]){ num[j+1]=num[j];num[j]=a;} else break;} } foreach(int item in num){ Console.WriteLine(item+",");} Console.ReadLine();\/\/这个程序放到MAIN里面就可以调试了.N(数组长度)要自己设定我设置了为6;如果要动态设置只要在输入...
c# 随机生成8位的纯数字 和 随即生成10位的数字加字母 求方法_百度...
推荐于2017-12-16 10:27:40 最佳答案 以前写过一个方法生成随机数的: private string randomNum() { ArrayList list = new ArrayList(); string str = "0,1,2,3,4,5,6,7,8,9"; list.AddRange(str.Split(',')); \/\/随机码。 string randomContent = ""; Random rd = new Random(); \/\/...
用c#编写程序统计字符串长度?
函数应用 1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.例:concat(‘11’,'aa’)='11aa’;2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。例:copy(‘abdag’,2,3)=’bda’3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符...
c#随机数方法产生5个1~10(包括1和10)之间的整数是什么?
程序:int[]s=newint[5];\/\/s数组中存放着需要的数字 Randomra=newRandom();for(inti=0;i<5;i++)\/\/遍历数组显示结果 { s[i]=ra.Next(1,10);Console.WriteLine(s[i]);} Console.ReadKey();其中用到了随机数函数Random()。我们可以用以下两种方法初始化一个随机数发生器;函数是这样用,...
用C#控制台编写一个,随机产生1到100的数,然后猜大小
using System;class Program { static void Main(string[] args){ Random r=new Random();int guessNumber=0,inputNumber=0;bool isExit=false;while(isExit==false){ guessNumber=r.Next(1,100);while(true){ try { Console.Clear();Console.WriteLine("输入一个1到100之间的数 ");input...
用C#编写程序,生成一个长度为100的数组,然后向数组中随机插入1~100之间...
你这个问题有歧义诶,到底是 把数随机插入到数组中,还是 在数组中插入的1~100随机数 楼上是第一个,结果b数组值为1~100排序的数。下面是第二个,结果数字是随机的,但插入是顺序插入的代码如下:int[] arr = new int[100];Random r = new Random(DateTime.Now.Millisecond);for(int i=0;i...
c#怎么获取一个数组的长度?
} } } if(a) free(a);\/\/对申请的内存进行释放。 return 0;}从以上程序可以看到,这种方式的原理就是每当数组空间不足时,利用函数realloc分配一段新的内存空间以增大数组长度。 直到占满所有剩余空间。如果到占满所有空间还是无法存下数据,那么是硬件无法支持了。所以这种方法可以做到...