关于查找元素的问题。。

假设某数组中有n个整形数据(从键盘中输入),然后查找指定数据x是否存在? 若存在,则输出其第一次出现时的元素下标,若不存在则输出-1;

输入
输入有多行数据,其中:
第一行是一个正整数n(n<100000),表示数组中元素个数。
第二行是 n个 数据(介于-100000 与 1000000之间),空格隔开
第三行是一个整型数x ,表示待查找元素
输出
输出只有整数,若x不存在,则输出-1; 否则,输出数据元素x在数组中的下标
想问一下,这个该怎么解决

#include 
int main()
{
int n,a[5000],x;
scanf("%d",&n);
for(int i=0;iscanf("%d", a[i]);
}
for(int i=0;iscanf("%d",&x);
    if(a[i]=x)
    {
        printf("%d",i);
        break;
    }
    else 
    {
       if(i==(a[i]-1))
       printf("-1");
    }
}
    return 0;
}

修改如下,供参考;

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

 // x只输入一个就可以了,你要写在循环外面
#include <stdio.h>
int main() {
    int x, n,count =0;
    printf("请输入一个数:\n");
    scanf("%d", &n);
    int a[n];
    for (int i = 0; i<n; i++) {
        scanf("%d", &a[i]);
    }
    printf("请输入x\n");
    scanf("%d", &x);
    for (int i  = 1; i<n; i++) {
        if (x==a[i]) {
            printf("%d ",i);//可能存在多个和X相同的元素,所以应该不要break吧
            count++;
        }
    }
    if (count==0) {
       printf("\n-1\n"); 
    }
    return 0;
}