Enndme· 2022-11-25 11:25 采纳率: 70%
浏览 70
已结题

关于查找元素的问题。。

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

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

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

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-11-25 11:52
    关注

    修改如下,供参考;

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月25日