我编写了一个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();
}
Run Code Online (Sandbox Code Playgroud)
您应始终复制粘贴代码.您提供的代码有一些拼写错误,甚至不会编译.
忽略拼写错误有三个主要问题:
int i[3]只有3个元素.i[3]超出范围并访问它可能会导致意外的结果.
交换元素时,按升序排序,但在检查数组是否完全排序时,使用降序排列.
您正在使用严格不等式来检查数组是否已排序.如果有两个相同的元素,这将不起作用.