编译没有问题,运行不出结果,调试显示错误

#include <stdio.h>
int main ()
{
int n;
int a[n];
scanf ("%d",&n);
for (int i=0;i<n;i++)
{
scanf ("%d",&a[i]);
}
int num;
int s=0,t=0;
int MAX;
for (int i=0;i<n;i++)
{
num=a[i];
for (int j=0;j<n;j++)
{
if (num == a[j])
{
t++;
}
}
if (t>s)
{
s=t;
MAX=a[i];
}
}
printf ("%d %d\n",MAX,s);
return 0;
}

一维数组的定义方式为
类型说明符 数组名[常量表达式]

int a[10]
常量表达式中可以包括常量和符号常量,不能包含变量。就是说c语言不允许对数组的大小作动态定义。
即在上面代码中,a[n]是不被允许的,n必须是常量,而不能是变量。
温馨提示:答案为网友推荐,仅供参考
相似回答