一个简单的问题,就是从数组中查找元素,为啥我这不对

#include <stdio.h>
int main()
{
int i = 0;
int n=0;
int a[i];
int x;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);}
scanf("%d",&x);
if(a[i]==x)
printf("nb");
else
printf("hh");
return 0;
}


#include <stdio.h>
int main()
{
    int i = 0;
    int n = 0;
    int x;
    scanf("%d", &n);
    int a[n];
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    scanf("%d", &x);
    for (i = 0; i < n; i++)
    {
        if (a[i] == x){
            printf("nb");
            return 0;
        }
    }
    printf("hh");
    return 0;
}

用一个for循环遍历数组查找