永发信息网

C#写取8个互不相等的随机数

答案:1  悬赏:60  手机版
解决时间 2021-04-06 02:42
  • 提问者网友:捧腹剧
  • 2021-04-05 18:15
C#写取8个互不相等的随机数
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-04-05 18:27
static void Main(string[] args)
        {
            //创建随机数生成器
            Random ran = new Random();
            //8个a
            int[] a = new int[8] { 1, 2, 3, 4, 5, 6, 7, 8 };
            //8个b
            int[] b = new int[8];

            //生成b的值
            for (int i = 0; i < b.Length; ++i)
            {
                //取1-8随机数
                b[i] = ran.Next(1, 9);
                //如果与对应a相等
                if (b[i] == a[i])
                {
                    --i;
                }
            }

            //输出a和b的值
            for (int i = 0; i < b.Length; ++i)
            {
                Console.WriteLine("a[{0}] = {1}, b[{0}] = {2}", i, a[i], b[i]);
            }
        }如果满意就请采纳哈
追答没有b[8]
数组下标是从0开始的只有 b[0] - b[7]追问哦 但是为什么b中有元素重复?
我希望让所有的b都互不相等
谢谢了~追答                //取1-8随机数
                b[i] = ran.Next(1, 9);
                //如果与对应a相等
                if (b[i] == a[i])
                {
                    --i;
                }
                //在与自身比较
                for (int j = 0; j < b.Length; ++j)
                {
                    //不与自身做比较
                    if (j != i)
                    {
                        //与其他元素依次做比较
                        if (b[i] == b[j])
                        {
                            --i;
                            break;
                        }
                    }
                }完整代码太长不能赋值过来,就你给for循环里面的代码,就改了那个地方
追问b没有重复了,但是这一次b中却有元素出现了等于0的情况是怎么回事?
而且b1恒等于0?追答不会吧随机数是 1-8怎么会出现0呢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯