using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] num = new int[10];//此数组用于存放随机数 
            int N;//此变量用于接收随机函数组数
            Random r = new Random();//实例化随机对象
            Console.WriteLine("本随机触发器,适合七星彩选数");
            Console.WriteLine("请输入你要生成的随机数组数");
            N = int.Parse(Console.ReadLine());//将键盘读入字符转换为整形
            for (int i = 0; i < N; i++)//用于控制生成层数
            {
                for (int j = 0; j < 7; j++)
                {
                    num[i] = r.Next(10);
                }
            }
            for (int x = 0; x < N; x++)
            {
                Console.WriteLine("");
                for (int k = 0; k < 7; k++)
                {
                    Console.Write(num[k]);
                }
            }        }
    }
}
测试中存在BUG,输出的几组随机数都相同,而且输入1,2,只是相应的改变第一位,第二位其它位为0,困惑不解..

解决方案 »

  1.   

     Random r = new Random();放到方法外面去实例化试试
      

  2.   

    num[i] = r.Next(10);
    应该是num[j]吧
      

  3.   

    rnd = new Random(i* unchecked((int)DateTime.Now.Ticks) + i); // 更换随机数发生器的种子避免产生重复值 
      

  4.   

    if(r.content(n))
    {
        newr = r.next(x);
    }
      

  5.   

     for (int x = 0; x < N; x++)
                {
                    Console.WriteLine("");
                    for (int k = 0; k < 7; k++)
                    {
                        Console.Write(num[k]);
                    }
                }
    //你这里的循环根本就是同一个输出
      

  6.   

    而且输入1,2,只是相应的改变第一位,第二位其它位为0,困惑不解..
    //int[] num = new int[10];/你定义了10个,没有赋值的默认为0.。所以就输出了0
      

  7.   

    for (int i = 0; i < N; i++)//用于控制生成层数
                {
                    for (int j = 0; j < 7; j++)
                    {
                        num[i] = r.Next(10);
                    }
                }
    这个循环J有什么用?
      

  8.   

    呵呵,改变一下代码就行了。
                N = int.Parse(Console.ReadLine());//将键盘读入字符转换为整形            for (int i = 0; i < N; i++)//用于控制生成层数
                {
                    for (int j = 0; j < 7; j++)
                    {
                        num[j ] = r.Next(10);
                        Console.Write(num[j]);
                    }
                    Console.WriteLine();
                }
                Console.ReadKey();另外,num 不应该定义成一维数组。