我编写了一个 C 程序来执行冒泡排序,但在执行它时 IDE 挂起。 为什么会这样?代码如下:
#include<stdio.h>
main()
{
int i[3],temp,n,x;
printf("Enter 4 positive numbers");
for(n=0;n<=3;n++)
{
scanf("%d",&i[n]);
}
recheck:
for(x=0;x<=2;x++)
{
if(id[x]>i[x+])
{
temp=i[x];
i[x]=i[x+1];
i[x+1]=temp;
}
}
if(i[0]>i[1]&&i[1]>i[2]&&i[2]>i[3])
{
for(n=0;n<=3;n++)
{
printf("%d",i[n]);
}
}
else
{
goto recheck;
}
getche();
}
最佳答案
您应该始终复制粘贴您的代码。您提供的代码有一些拼写错误,甚至无法编译。
忽略拼写错误,存在三个主要问题:
int i[3]
只有 3 个元素。i[3]
越界,访问它可能会导致意外结果。当交换元素时,您按升序排序,但当检查数组是否完全排序时,您使用降序。
您正在使用严格不等式来检查数组是否已排序。如果有两个相等的元素,这将不起作用。
关于c - Turbo C 在执行 C 冒泡排序程序时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020774/