gpt4 book ai didi

c# - Bubblesort int 只返回 0

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:31 24 4
gpt4 key购买 nike

所以我有这个家庭作业(一个人会做冒泡排序的唯一原因)

我使用 visual studio 创建了 2 个数组,一个是未排序的数字,另一个是已排序的数字。

我将在此处粘贴的代码只会在两个数组中返回 0,我不知道我做错了什么所以请帮助我!

namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{


public Form1()
{
InitializeComponent();
}

private void btnBubbleSort_Click(object sender, EventArgs e)
{
int[] numbers = new int[100];
foreach (int value in numbers)
{
lstBubbleUnorderd.Items.Add(value);

}

for (int y = 0; y < 100; y++)
{
for (int i = 100 - 1; i > y; --i)
{
if (numbers[i] <= numbers[i - 1])
{
int temp = numbers[i];
numbers[i] = numbers[i - 1];
numbers[i - 1] = temp;
}
}
}
for (int j = 0; j < 100; j++)
{
lstBubbleOrderd.Items.Add(numbers[j]);

}
}
}
}

============================================= ============================================

多亏了你们,我的代码现在可以工作了

我的新代码如下:

命名空间 WindowsFormsApplication5{ 公共(public)部分类 Form1:表单 {

    public Form1()
{
InitializeComponent();


}

private void btnBubbleSort_Click(object sender, EventArgs e)
{
lstBubbleOrderd.Items.Clear();
lstBubbleUnorderd.Items.Clear();

Random RndNmbrs = new Random();
int n = RndNmbrs.Next();
for (int a = 0; a < 10; a++)

lstBubbleUnorderd.Items.Add(RndNmbrs.Next(0, 10));
int[] numbers = new int[lstBubbleUnorderd.Items.Count];
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = int.Parse(lstBubbleUnorderd.Items[i].ToString());
}



for (int y = 0; y < numbers.Length; y++)

{

for (int i = numbers.Length - 1; i > y; --i)
{
if (numbers[i] <= numbers[i - 1])
{
int temp = numbers[i];
numbers[i] = numbers[i - 1];
numbers[i - 1] = temp;
}
}


for (int j = 0; j < numbers.Length; j++)
{
lstBubbleOrderd.Items.Add(numbers[j]);
}

}

private void button1_Click(object sender, EventArgs e)
{

}
}
}

最佳答案

您在这里创建了数字数组:

int[] numbers = new int[100];

但是您从未用任何东西填充它,所以它的所有值都被初始化为零。

也许您打算做的是这样的事情(结合来自 leemo's answer 的建议)?

int[] numbers = new int[lstBubbleUnorderd.Items.Count];
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = int.Parse(lstBubbleUnorderd.Items[i].ToString());
}
for (int y = 0; y < numbers.Length; y++)
{
for (int i = numbers.Length - 1; i > y; --i)
{
if (numbers[i] <= numbers[i - 1])
{
int temp = numbers[i];
numbers[i] = numbers[i - 1];
numbers[i - 1] = temp;
}
}
}
for (int j = 0; j < numbers.Length; j++)
{
lstBubbleOrderd.Items.Add(numbers[j]);
}

这会将输入到 lstBubbleUnorderd 中的所有数字读取到您的 numbers 数组中,对它们进行排序,然后在 lstBubbleOrderd 中打印出来。

关于c# - Bubblesort int 只返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20133768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com