【发布时间】:2017-06-21 23:03:22
【问题描述】:
我们正在学习数组,而我刚刚接触了冒泡排序。
我编写了以下代码以升序对数组进行排序,但是出现了问题。
我找不到它,但我知道有问题。
我找到了正确的代码,但我仍然不明白为什么这不起作用。
我的代码
int a;
int i;
int temp;
int value[5] = { 5, 4, 3, 2, 1 };
for (i = 0; i < 5; i++) {
if (value[i] > value[i + 1]) {
temp = value[i];
value[i] = value[i + 1];
value[i + 1] = temp;
}
}
for (a = 0; a < 5; a++) {
printf(" %d ", value[i]);
}
【问题讨论】:
-
提示:您需要在当前循环中使用内部
for循环才能正确实现冒泡排序。 -
注意不要与超出范围的项目进行比较。 (现在在您的代码中发生这种情况。)
-
此外,在最后一个循环中,您应该使用 value[ a ]。
-
我需要什么内部 for 循环?
-
见下面的答案,基本上你必须多次运行循环,你也打印错了,使用 a 循环,但打印值[i] ,而不是使用 value[a]
标签: c arrays sorting bubble-sort