冒泡排序为什么动不了

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

```

  • #include<stdio.h>

int main()

{
int i, j, t;
int a[10] = { 0 };
for (j = 0; j < 10; j++)
{
scanf("%d", &a[j]);
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (a[j] < a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (j = 0; j < 10; j++)
{
printf("%3d", a[j]);
}
}```
定义数组需要是具体的值,不能是变量

数组定义时,a[j]改成a[10]