简单的c语言,我遇见一个特别离谱的问题,很玄学

就是一段简单的输入10个数,然后用指针从小到大排序的问题,第一遍运行没问题,第二遍运行数组里面会多一个“20”参与排序。找不到哪里出现的

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a[10],b,c,e;
    int *d=a;
    printf("please input 10 numbers:\n");
    for(b=0;b<10;b++)                 //输入
    {
        scanf("%d",d+b);
    }
    for(b=0;b<10;b++)                  //排序
    {
        for(c=0;c<10-b;c++)
        {
            if(*(d+c)>*(d+c+1))
            {
                e=*(d+c);
                *(d+c)=*(d+c+1);
                *(d+c+1)=e;
            }
        }
    }
    printf("the sorted numbers:\n");
    for(b=0;b<10;b++)                 //输出
    {
        printf("%d ",*(d+b));
    }
    system("pause");
    return 0;
}