日期:2014-05-20  浏览次数:20790 次

网上很多的那道关于1-100随机插入数组的题目!为啥我的输出第一项老是0?
昨天看到了这个题目我就尝试了写了下,结果高估了自己,于是baidu之,好多答案,选了个C#的看下,思路还是很好懂的,但是我就想反过来写,你i++,我就非要i--;结果输出的数组第一个result[0]始终都等于0;我调试了下发现尼玛竟然还有100,那不是说我始终少了一个数?
附上代码,求大神指导下:
            int[] arr = new int[100];
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = i + 1;
            }
            int min = 0;
            Random rand = new Random();
            int[] result = new int[100];
            for (int i = result.Length - 1; i > 0; i--)
            {
                int index = rand.Next(min, 100);
                result[i] = arr[index];
                arr[index] = arr[min];
                min++;
            }
            for (int i = 0; i < 100; i++)
            {
                Console.Write(result[i] + "  ");
                if (i % 10 == 0 && i != 0)
                {
                    Console.WriteLine("/r/n");
                }
            }
            Console.ReadKey();
------解决方案--------------------
int[] arr = Enumerable.Range(0, 100).OrderBy(x => Guid.NewGuid()).ToArray();
------解决方案--------------------
你的result[0]始终没赋值
for (int i = result.Length - 1; i >= 0; i--)

  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/