【发布时间】:2017-06-28 05:58:55
【问题描述】:
好的,所以我尝试实现冒泡排序,但是当我输入 0 作为数字时它无法正常工作。它显示额外的数字。
int main ()
{
int amount;
int numbers[50];
int x, y, z, j;
int swap;
printf("How many numbers do you want to sort: ");
scanf("%i", &amount);
for (x = 0; x <= amount; x++)
{
printf("Enter number %i: ", x);
scanf("%i", &numbers[x]);
}
for (j = 0; j <= amount; j++)
{
for (y = 0; y <= amount; y++)
{
if (numbers[y] > numbers[y + 1])
{
swap = numbers[y];
numbers[y] = numbers[y + 1];
numbers[y + 1] = swap;
}
}
}
for (z = 0; z <= amount; z++) {
printf("%i ", numbers[z]);
}
return 0;
}
【问题讨论】:
-
for (x = 0; x <= amount; x++)- 我已经很怀疑了,因为 C 语言中的正常循环是for (x = 0; x < amount; x++)的形式,你看到你使用<=的问题了吗? ` -
y <= amount-->y < amount
标签: c algorithm bubble-sort