真的不理解真的不理解

#include 

int main()
{
    int i,j,tmp,a[10];
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++)
    {
        for(j=0;j<9-i;j++)
        {
            if(a[j]>a[j+1])
            {
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }


    return 0;
}

上面的程序可以用来将10个数从小到大排序,但是题目要求样例输入:(要求指明10个数,但是10会作为数据参与排序)
10
1 0 4 8 12 65 -76 100 -45 123
为啥我的是
-67 -45 0 1 4 8 1012 65 100
该怎么解决?

在main()中定义一个int 型的num,在循环语句之前写一句scanf获取num。
题目要求是有一个任意长度,而不是把长度是10写进程序里。
你把代码中所有的10换成num。

数组十个元素有九个要排序,控制趟数:i < 10-1
第一元素要排序或者说比较九次,第二个元素排序八次所以-i比较合适:j < 10-1-i