为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
翻阅古今 2022-08-20 16:22:24
我是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]);            }        }    }}
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

1.数组以索引 0 开头,因此请将所有循环更改为从 0 开始:


 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)

{

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

}

项目必须相同(但顺序不同)。


而且您正在克隆()并且实际上没有将其分配给任何东西,因此它是一个额外的代码。a.Clone();


查看完整回答
反对 回复 2022-08-20
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

变量有范围

这对您现在来说意味着 in 与 in 不同(更不用说它们被分配到不同的数组)。abutton1_Clickabutton3_Click

如果需要共享它们,则应在类级别声明(即,不在方法中)。然后,这两种方法都可以使用相同的变量(只是不要重新分配它!a

也:

  • a.Clone();不执行任何操作,除非您分配结果

  • 在循环中呼叫是完全过分的Sort

  • Random tal = new Random()甚至不用于button3_click


查看完整回答
反对 回复 2022-08-20
  • 2 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信