【发布时间】:2013-12-06 16:17:05
【问题描述】:
所以我有这个家庭作业(做冒泡排序的唯一原因)
使用 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 { 公共部分类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)
{
}
}
}
【问题讨论】:
-
未排序的数字从何而来?...
-
请学习使用调试器。单步执行代码几秒钟就会使问题变得非常清楚。
-
Ken White 我怎么知道问题出在哪里?请解释一下,因为我对它很陌生,而且在找到我的冒泡排序问题的答案之前,我已经搜索了两天(大多数时候,答案描述得有点高级)
标签: c# visual-studio-2010 bubble-sort