为啥第二个数组输入不能运行

#include<stdio.h>
int main()
{
int a;
int score[a];
int min = score[0];
printf("请输入整数个数:");
scanf("%d", &a);
printf("请输入各整数值:");
for (int p = 0; p < a; p++)
{
scanf("&d", &score[p]);
}
for (int q = 0; q < a; q++)
{
if (score[q] < min)
min = score[q];
}
if (min > a) {
printf("它最小值为%d", a);
}
else
printf("最小值为%d", min);
return 0;
}

#include<stdio.h>
int main() {
 int a;
 int *score;
 int min;
 printf("请输入整数个数:");
 scanf("%d", &a);
 score=new int[a];
 printf("请输入各整数值:");
 for (int p = 0; p < a; p++) {
  scanf("%d", &score[p]);
 }
 min=score[0];
 for (int q = 1; q < a; q++) {
  if (score[q] < min) min = score[q];
 }
 printf("最小值为%d", min);
 delete[] score;
 return 0;
}