求大神帮我看看哪里不对

include

int main (void)
{
int n,i,t;
int a[n];
int p=0;
int q=n-1;
scanf ("%d",&n);
for (i=0;i<n;i++)
{
scanf ("%d",&a[i]);
}
while (p<q)
{
t=a[p];
a[p]=a[q];
a[q]=t;
p++;
--q;
}
for (i=0;i<n;i++)
{
printf ("%d ",a[i]);
}
return 0;
}

你想干嘛?至少把程序要实现的功能说一下吧

前面顺序换一下

int n, i, t;
    scanf("%d", &n);
    int a[n];
    int p = 0;
    int q = n - 1;

数组翻转?
C语言中要求变量的定义必须在所有的事件前面。
但是要先有n的值才能定义数组a和给p赋值,建议改成下述方式。
int i,t,n;
int *a;
int q;
int p=0;
scanf ("%d",&n);
q=n-1;

程序是顺序执行的,执行到a[n]的时候就卡死了,系统根本不知道n是多少。