阿撩 发表于 2016-9-18 22:57:22

求问各位大神下图是什么原因导致的?

#include <stdio.h>
int main()
{

        int low,high,mid,n;
        int a={-12,0,6,16,23,56,80,100,110,115};
        low=0;
        high=9;
        printf("请输入一个数:");
        scanf("%d",&n);
        while (low <= high)
        {
        mid=(low+high)/2;
        if(a==n)
        {
        printf("%d",mid);
        }
        else if(n < a)
        {
        high=mid-1;

        }
        else
        {
        low=mid+1;
        }

        }
        return 0;
}

编译没有错误,但是运行的时候就出现下图这种情况:如图

求问这是怎么回事?谢谢各位大神了,新手才开始学习,很多不懂的地方,感激不尽!

仰望天上的光 发表于 2016-9-18 23:14:30

                if (a == n)
                {
                        printf("%d", mid);
                        break;
                }
这个if分支加上break;

xiaoshuai666 发表于 2016-9-19 18:05:36

没有终止程序,进入了死循环

xiaoshuai666 发表于 2016-9-19 18:13:03

#include <stdio.h>
int main()
{

      int low,high,mid,n;
      int a={-12,0,6,16,23,56,80,100,110,115};
      low=0;
      high=9;
      printf("请输入一个数:");
      scanf("%d",&n);
      while (low <= high)
      {
      mid=(low+high)/2;
      if(a==n)
      {
      printf("%d",mid);break;
      }   
      else if(n < a)
      {
      high=mid-1;

      }
      else
      {
      low=mid+1;
      }

      }
      return 0;
}加一个break

得意的屁 发表于 2016-9-19 20:30:41

哇咔咔 这个能做成程序 运行到别人电脑上去么 这个好{:10_256:}

阿撩 发表于 2016-9-19 21:21:06

仰望天上的光 发表于 2016-9-18 23:14
这个if分支加上break;

感谢!!!试了一下 可以了!

阿撩 发表于 2016-9-19 21:23:55

xiaoshuai666 发表于 2016-9-19 18:13
#include
int main()
{


嗯嗯 谢谢可以了!

lili200238 发表于 2016-9-19 23:00:56

仰望天上的光 发表于 2016-9-18 23:14
这个if分支加上break;

{:10_277:}
页: [1]
查看完整版本: 求问各位大神下图是什么原因导致的?