| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1187 人关注过本帖
标题:当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
快速回复:当m=7时陷入死循环 怎么破
数据加载中...
 
   



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

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