猿问

将数组从按钮 1 复制到按钮 2

我是c#和编程的初学者。所以我现在正在学校研究这个代码,我必须在1-21之间生成21个随机数(你可以有数字的重复)。我已经做了代码,它正在工作排序...它在listbox1中生成数字,但它与我在listbox3中排序的数字不同。


private void button1_Click(object sender, EventArgs e)

        {

            int[] a = new int[21];

            Random tal = new Random();



            for (int x = 1; x < a.Length; x++)

            {

                a[x] = tal.Next(1, 21);

            }

            for (int x = 1; x < a.Length; x++)

            {

                listBox1.Items.Add(a[x]);

            }

            foreach (int i in a)

            {

                Array.Sort(a);

                listBox3.Items.Add(a[i]);

            }

            int min = a[1];

            for (int x = 1; x < a.Length; x++)

                if (a[x] < min)

                    min = a[x];

            listBox2.Items.Add(min);

            int max = a[20];

            for (int x = 1; x > a.Length; x++)

                if (a[x] < max)

                    max = a[x];

            listBox2.Items.Add(max);

        }


        private void button2_Click(object sender, EventArgs e)

        {

            this.Close();

        }


        private void button3_Click(object sender, EventArgs e)

        {

            int[] a = new int[21];

            Random tal = new Random();

            a.Clone();


            foreach (int i in a)

            {

                Array.Sort(a);

                listBox3.Items.Add(a[i]);

            }

        }

    }

}


翻阅古今
浏览 91回答 2
2回答

眼眸繁星

1.数组以索引 0 开头,因此请将所有循环更改为从 0 开始:&nbsp;for (int x = 0; x < a.Length; x++)而不是for (int x = 1; x < a.Length; x++)也不是int min = a[0];int min = a[1];2.在for循环之外对数组进行排序,无需一遍又一遍地进行:Array.Sort(a);foreach (int i in a){&nbsp; &nbsp; listBox3.Items.Add(a[i]);}项目必须相同(但顺序不同)。而且您正在克隆()并且实际上没有将其分配给任何东西,因此它是一个额外的代码。a.Clone();

陪伴而非守候

变量有范围。这对您现在来说意味着 in 与 in 不同(更不用说它们被分配到不同的数组)。abutton1_Clickabutton3_Click如果需要共享它们,则应在类级别声明(即,不在方法中)。然后,这两种方法都可以使用相同的变量(只是不要重新分配它!a也:a.Clone();不执行任何操作,除非您分配结果在循环中呼叫是完全过分的SortRandom tal = new Random()甚至不用于button3_click
随时随地看视频慕课网APP
我要回答