| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:这个程序为什么没有输出
只看楼主 加入收藏
工藤♀新一
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-5-4
收藏
 问题点数:0 回复次数:4 
这个程序为什么没有输出

#include<stdio.h>
void binaryInsert(int a[],int n)
{ int i,k,r;
int temp;
for(i=1;i<n;i++)
{ temp=a[i];
k=0;r=i-1;
while(k<=r)
{ int m;
m=(k+2)/2;
if(temp<a[m])
r=m-1;
else
k=m+1;
}
for(r=i;r>k;r--)
{a[r]=a[r-1];

}
a[k]=temp;
}
}
main()
{ int b[5]={5,2,3,1,4},i;

binaryInsert(b,5);
for(i=0;i<5;i++)
printf("%d ",b[i]);
getch();

}

[此贴子已经被作者于2006-7-20 11:21:42编辑过]

搜索更多相关主题的帖子: 输出 
2006-07-20 11:18
lxs5216
Rank: 1
等 级:新手上路
帖 子:144
专家分:0
注 册:2006-2-3
收藏
得分:0 
没看明白你要 做什么,不过出现了死循环那是肯定的!
2006-07-20 11:25
工藤♀新一
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2006-5-4
收藏
得分:0 
怎么出现死循环,请详细说明
binaryInsert函数是对数组的排序,采用折半查找排序的方法

很高兴能和大家一起学习程序! QQ:114109098
2006-07-20 11:29
lxs5216
Rank: 1
等 级:新手上路
帖 子:144
专家分:0
注 册:2006-2-3
收藏
得分:0 
折半查找排序法在本论坛中有高手已经提出过了,如果你想找到死循环,最简单的办法就是printf,看到哪里停了就知道的呗
2006-07-20 11:40
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

i循环到3时,r==0,k==0,m==1,a[m]>temp始终成立,执行r=m-1后,r仍为0,仍有k<=r成立,进入死循环。
程序我没看太明白,看不出"折半"的味道,相关帖子查下论坛吧,


对不礼貌的女生收钱......
2006-07-20 13:19
快速回复:这个程序为什么没有输出
数据加载中...
 
   



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

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