15533617457 发表于 2020-4-7 19:11:40

从数组中搜索一个数为什么一直搜索不出来

#include<stdio.h>
int fun(int a[], int length, int pan);
int main(void)
{
        int shu = 0;
        int n;
        printf("请输入一个数字搜素有么有这个数");
        int a[] = { 1,12,423,6456,434,2,0,5,34,76,54,23,66, };
        scanf("%d", &shu);
        n = fun(a, sizeof(a) / sizeof(a), shu);
        if (n != -1)
        {
                printf("这个数字在这个数组的第%d位", n);
        }
        else
        {
                printf("这个数字不存在");
        }
}
int fun(int a[], int length, int pan)
{
        int n = -1;
        int i = 0;
        for (; i < length; i++)
        {
                if (pan == a)
                {
                        n = length;
                        break;
                }
        }
        return n;
}

BngThea 发表于 2020-4-7 19:17:33

if (pan == a)

15533617457 发表于 2020-4-7 19:22:38

BngThea 发表于 2020-4-7 19:17
if (pan == a)

谢谢了没注意到

qiuyouzhi 发表于 2020-4-7 19:26:01

printf("%d\n", pan);             
printf("%d\n", a);
你在函数的for循环里加上这两行代码,会发现
a永远是0,应该是a
#include<stdio.h>
int fun(int a[], int length, int pan);
int main(void)
{
      int shu = 0;
      int n;
      printf("请输入一个数字搜素有么有这个数");
      int a[] = { 1,12,423,6456,434,2,0,5,34,76,54,23,66 };
      scanf("%d", &shu);
      n = fun(a, sizeof(a) / sizeof(a), shu);
      if (n != -1)
      {
                printf("这个数字在这个数组的第%d位", n);
      }
      else
      {
                printf("这个数字不存在");
      }
}
int fun(int a[], int length, int pan)
{
      int n = -1;
      int i;
      for (i = 0; i < length; i++)
      {
                if (pan == a)
                {
                        return i;
                }
      }
      return n;
}
页: [1]
查看完整版本: 从数组中搜索一个数为什么一直搜索不出来