一维数组问题按个位数字排序

代码运行结果不同
问题:键盘获取数值 按照个位数一定顺序排序

#include
int main()
{
    int a[10];
    int b[10];
    int i,j;
    int temp;
    printf("请输入10个数字:");
    for (i = 0;i < 10;i++)
    {
        scanf("%d",&a[i]);
        b[i] = a[i] % 10;  
    }
    for (i = 0;i < 9;i++)
    {
        for (j = 0;j < 9 - i;j++)
        {
            if (b[j] > b[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    for(i = 0;i < 10;i++)
    {
        printf("%d\t",a[i]);
    }
    
    return 0;
}

结果为:

img

答案是:

#include 
int main()
{
    int a[10];
    int i,j,t;
    printf("请输入十个两位正整数:\n");
    for (i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for (i=0;i<9;i++)
    {
        for (j=0;j<9-i;j++)
        {
            if (a[j]%10>a[j+1]%10)    //利用冒泡排序,并改变if条件即可实现
        {
            t=a[j]; a[j]=a[j+1]; a[j+1]=t;      //若不熟悉多去看冒泡排序
        }
        }
    }
    for (i=0;i<10;i++)
    {
        printf("%d\t",a[i]);
    }
    return 0;
}


结果为:

img

只是添加了个新的数组,并且将数组的其他条件相同,为什么运行结果不同?