为什么pta上运行会显示段错误?

输入一个整数n,再输入n个成绩,求大于平均分的成绩个数。
例如,输入5 68 79 56 95 88,输出3。

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试先输入n,表示数据个数,然后输入n个整数。

输出格式:
对于每组测试,输出大于平均分的成绩个数。

输入样例:
1
5 68 79 56 95 88
输出样例:
3
#include
using namespace std;
int main() {
int T,n;
int a[n]={0};
cin >> T;
int sum=0,flag=0;
for (int i = 0; i < T; i++) {
cin>>n;
for (int j = 0; j < n;j++) {
cin >> a[j];
sum += a[j];
}
double ave = sum * 1.0 / n;
for (int i = 0; i < n; i++) {
if (a[i] > ave)
flag++;
}
cout << flag <<endl;
}

    return 0;

}

int a[n]={0};这个写法是错误的,要写成int a[1001]={0};这个才行