当我以这种方式编码时,我得到了正确的结果。1、2、3、4、6,
#include<stdio.h>
main()
{
int i,x,temp,arr[5]={4,3,2,1,6};
for(i=1;i<5;i++){
temp=arr[i];
for(x=i;x>0;x--){
if(arr[x-1]>temp)
arr[x]=arr[x-1];
else
break;
}arr[x]=temp;
}
for(i=0;i<5;i++)
printf("%i,",arr[i]);
}
但是这样我得到了 4,4,4,4,6,一个不正确的答案。
#include<stdio.h>
main(){
int i,x,temp,arr[5]={4,3,2,1,6};
for(i=1;i<5;i++){
temp=arr[i];
for(x=i;x>0;x--){
if(arr[x-1]>temp)
arr[x]=arr[x-1];
else
{
arr[x]=temp;
break;
}
}
}
for(i=0;i<5;i++)
printf("%i,",arr[i]);
}
但看起来两者都是一样的。你能解释一下吗?