c语言冒泡排序结果问题

#冒泡排序相关
不知道为什么结果会有个负1,不知道哪错了,来个人看看

img

下标从0开始 因此在访问a[10]的时候会造成越界访问,这可能导致程序的输出结果出现意外的负数值

#include <string.h>

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



第一个for为什么是从1到10循环的
写代码之前要先学会看代码,你看看你自己写的都是啥呀
一共输入10个数,输出11个数,你是要闹哪样