C语言程序无法运行这个片段是求一组数字每个数字的位数

void main()
{
int n,i,l,m,k,j,u,max=0;
printf("请输入数组内元素个数:");
scanf("%d",&n);
int a[i];
int b[i];
printf("请输入元素:");
for(int i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<n; i++)
{
m=1;
u=a[i]/10;
while(u>=1)
{
u=a[i]/10;
m=m+1;
}
printf("%d",m);
}
}

加上头文件,改了下数组大小和一些bug

img

#include<stdio.h>
int main()
{
    int n,i,l,m,k,j,u,max=0;
    printf("请输入数组内元素个数:");
    scanf("%d",&n);
    int a[n];
    int b[n];
    printf("请输入元素:");
    for(int i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0; i<n; i++)
    {
        m=0;
        while(a[i]>=1)
        {
            a[i]=a[i]/10;
            m=m+1;
        }
        printf("%d\n",m);
    }
}