运行结果对,但是没有分

对一个整型数组进行排序。从键盘接收一个整型数据n,用户输入的值一定位于1到9之间(含边界)。接下来接收n个整数到数组中,选用任何一种方式对数据元素降序排列后,输出数组中的每一个值。

输入格式:
输入第一行给出一个不超过9的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:
在一行中输出从大道小降序排列后的数组元素,两个数字之间有且仅有一个空格。最后一个数字后,没有空格。

输入样例:
第一个整数6,表示要接收6个整数到数组中:

6
6 1 0 2 1 3
结尾无空行
输出样例:
数值从大到小排列,最后一个数之后没有空格。

6 3 2 1 1 0
结尾无空行


#include<stdio.h>
int main(){
    int a[10]={0},n,i=0,t,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)scanf("%d",&a[i]);
    for(i=0;i<n;i++)
        for(j=i+1;j<n;j++)
            if(a[i]<a[j]){
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
    for(i=0;i<n-1;i++) 
       printf("%d ",a[i]);
    printf("%d",a[n]);
 }


最后一行代码a[n]错了,应该是a[n-1]