打印

[.net] 一道基础的算法题

随机生成1~10不同的10个数:(我也觉得它是吃饱了撑的,但题目就是这样)

 提示:您可以先修改部分代码再运行
我写了一个,但是有点问题,请大家教哈小弟该怎么写。。。
复制内容到剪贴板
代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string tempstr = "";
            int[] Arr1 = new int[10];
            Arr1 = GetArrRan();
            if (Arr1.Length == 10)
            {
                for (int i = 0; i < Arr1.Length; i++)
                {
                    tempstr += "随机数:" + Arr1[i].ToString() + "\r\n";
                }
            }
            Console.Write(tempstr);
        }
        static int[] GetArrRan()
        {
            int[] ReturnArr = new int[10];
            Random r = new Random();
            int i = 0;
            while (i < 10)
            {
                int tempint = r.Next(1, 100);
                if (!CheckArr(ReturnArr, tempint))
                {
                    ReturnArr[i] = tempint;
                    i++;
                }
            }
            return ReturnArr;
        }
        /// <summary>
        /// 检查值是否存在于数组中,存在则返回true,否则为false
        /// </summary>
        /// <param name="Arr1"></param>
        /// <param name="CheckValue"></param>
        /// <returns></returns>
        static bool CheckArr(int[] Arr1, int CheckValue)
        {
            bool ret = false;
            for (int i = 0; i < Arr1.Length; i++)
            {
                if (Arr1[i] == CheckValue) ret = true;
            }
            return ret;
        }
    }
}
评词党,欢迎加入友链接 http://www.pingcd.com/

回复 michaelzhouh 在 1# 的帖子

ii[0] = r.Next(1,10);

-------------------------------------------------
参数
minValue
类型:System..::.Int32

返回的随机数的下界(随机数可取该下界值)。

maxValue
类型:System..::.Int32

返回的随机数的上界(随机数不能取该上界值)。maxValue 必须大于等于 minValue。

所以这个随机数一直都是在  1=<随机数<=9,一共是9个数.而你的10个数又不能相同.所以永远都取不远.这样才有问题
评词党,欢迎加入友链接 http://www.pingcd.com/
10个随机数?
如果随机数选择范围很小的话,可以把它们都放在一个数组里,每次生成一个随机index,取出(取出完数组里就没这个数了)数组里的这个数,然后继续,不需要进行重复判定
silence is pretty good..

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!

回复 flash665 在 2# 的帖子

谢谢你的代码了,我改了一下这句话就是我要的结果了。
int tempint = r.Next(1, 11);
10不重复的数。

TOP