# 在第一种情况下,我将 temp 变量放入 while 循环中的条件语句#
int tab[8]={0,1,7,8,7,6,5,2};
int n=8;
int j;
int temp;
for(int i=1;i<n;i++)
{
temp=tab[i];
j=i-1;
while(j>=0&&tab[j]>temp)
{
tab[j+1]=tab[j];
--j;
}
tab[j+1] = temp;
}
我得到的结果是:
0 1 7 8 7 6 5 2
0 1 2 5 6 7 7 8
但另一方面,当我在 while 循环的条件语句中使用 tab[i]
for(int i=1;i<n;i++)
{
temp=tab[i];
j=i-1;
while(j>=0&&tab[j]>tab[i])
{
tab[j+1]=tab[j];
--j;
}
tab[j+1] = temp;
}
我得到这个结果:
0 1 7 8 7 6 5 2
0 1 7 7 6 5 2 8
而且我在传递这些值和它为什么会这样表现之间找不到任何区别。我认为我使用的是相同的值。这是我在那个页面上的第一个问题,请对我好一点,祝你有美好的一天