この方法でコーディングすると、正しい結果が得られました.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]);
}
どちらも同じように見えますが、説明していただけますか?