为什么插入前输出负数啊?

#include "stdio.h"
void s(int x[],int y);
int main()
{
int a[10]={1,2,3,5,6};
int i,n=5,m;
printf("插入前:");
for(i=0; i<5; i++)
printf("%d",&a[i]);

/* for(i=0,m=0; i<10; i++)
{
if(a[i]!='\0') m++;
else break;
}*/
s(a,5);
for(i=0; i<n+1; i++)
printf("%4d",a[i]);
return 0;
}
void s(int x[],int y)
{
int i,j,t,k;
printf("\ninput new:");
scanf("%d",&x[y]);
for(i=0; i<y+1; i++)
{
if(x[y]<x[i])
{
t=x[y];
for(j=i,k=5; j<y; j++,k--)
{
x[k]=x[(k-1)];
}
x[i]=t;
break;
}

    }
}

img

printf("%d",&a[i])
是什么迷惑操作
你是想scanf吗
如果是想打印,那也应该打印a[i]而不是&a[i]
你按有符号数方式打印a[i]的地址,那可不是个随机数吗