标题:当m=7时陷入死循环 怎么破
取消只看楼主
杏仁巧克力
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2016-4-1
结帖率:85.71%
已结贴  问题点数:20 回复次数:0 
当m=7时陷入死循环 怎么破
#include<stdio.h>
int m;
int show(int a[],int p,int r)
{
  while(p<r)
  {
      if(m==(p+r+2)/2)
      {   printf("%d\n",a[(p+r)/2]);
      goto o;}
   
          if((m<(p+r+2)/2))
          r=(p+r)/2;
          else
          p=(p+r)/2;
      

  }
  if(m==p)
      printf("%d\n",a[p-1]);
  if(m==r)
      printf("%d\n",a[r-1]);
o:return 0;}

int main()
{
    int a[]={1,2,3,4,5,6,7};
    printf("想要输出第几小的数:");
    scanf("%d",&m);
    if
        (m>7) printf("-1");
    else show(a,0,6);
    return 0;}
搜索更多相关主题的帖子: return include 
2016-04-12 21:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463578-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.632898 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved