C语言中定义变量的数据类型有位置要求吗,请大家帮忙看一下这个错误
我在编写一个算法程序的时候,刚开始就遇到了错误,希望大家能帮忙解决一下这是我的程序:
#include"stdio.h"
#include"math.h"
void main()
{
int a,b,p,i,j,m;
printf("please input a,b and p:\n");
scanf("%d%d%d",&a,&b,&p);
m=(int)sqrt(p-1);
//printf("%d\n",m);
int L1[m],L2[m];//错误在这里,提示是:error C2143: syntax error : missing ';' before 'type'
for(j=0;j<m;j++)
{
L1[j]=((int)pow(a,m*j))%p;
printf("%d\t",L1[j]);
}
}
当我把数组L1和L2的定义放在main开始的地方的时候,编译又能够通过。可是那样的话就不能根据m的大小来确定这两个数组的元素了啊。