xhynb 发表于 2021-12-29 00:12:54

判断一个数是否在数组中

本帖最后由 xhynb 于 2021-12-29 00:14 编辑

#include <stdio.h>

int main(void)
{
        int array = {1,100,0,87,65,43,98,23,56,79};
        int i,num ;
       
        printf("Please input a number:");
        scanf("%d",&num);
       
        for(i = 0;i < 10;i++)
        {
                if(array == num)
                {
                        printf("This number is in the array");
                }
                else
                {
                        printf("NOT!");       
                }
       
        }
为什么运行后会显示,
然后把else
                {
                        printf("NOT!");       
                }
删掉后当数字在数组中是显示就正常了。
思路或者哪里写错了,求解答{:10_254:}

jackz007 发表于 2021-12-29 00:25:24

本帖最后由 jackz007 于 2021-12-29 00:30 编辑

       一个 if ... else ... 周期就把 num 是否在 array 内给判断了,那还要循环干什么?如果 num 不在 array 中,是不是得在逐一比较完 array[] 的所有十个元素之后,才能最后下结论,而不是只比较一个元素就武断地下结论?
      而且,就算 num 不在 array[] 中,那也犯不着连续打印 10 次 NOT 吧?所以,结论应该在循环完以后再下。关键是,在发现 num 存在于 array[] 的时候,必须及时终止循环。

#include <stdio.h>

int main(void)
{
      int array = {1,100,0,87,65,43,98,23,56,79} , i , num   ;
      for(;;)
      {
                printf("Please input a number : ")                   ;
                scanf("%d" , & num)                                  ;
                for(i = 0 ; i < 10 ; i ++) if(array == num) break ;
                if(i < 10) printf("This number is in the array\n\n") ;
                else printf("NOT!\n\n")                              ;
      }      
}
      

cjy1043 发表于 2021-12-29 12:01:51

#include <stdio.h>

int main(void)
{
      int array = {1,100,0,87,65,43,98,23,56,79};
      int i,num ,j=0;
      
      printf("Please input a number:");
      scanf("%d",&num);
      
      for(i = 0;i < 10;i++)
      {
                if(array == num)
                {
                        printf("This number is in the array");
                        j = 1;
                        break;
                }
      }
      if (j==0)
      {
            printf("NOt!!");
      }
      
}

xhynb 发表于 2021-12-29 15:03:55

jackz007 发表于 2021-12-29 00:25
一个 if ... else ... 周期就把 num 是否在 array 内给判断了,那还要循环干什么?如果 num 不在 ar ...

感谢感谢

xhynb 发表于 2021-12-29 15:06:32

cjy1043 发表于 2021-12-29 12:01
#include

int main(void)


感谢感谢
页: [1]
查看完整版本: 判断一个数是否在数组中