一个错误的程序,怎么调试

xiongbing528 2005-05-31 08:47:10
void select(int a[],int low,int heigh)
{
int i,j,v,h;
for(h=1;h<=(heigh-low)/9;h=3*h+1)
for(;h>0;h=h/3)

for(i=h+low;i<=heigh;i++)
{
j=i; v=a[i];
while(j>=heigh+low&&v<a[j-h])
{
a[j]=a[j-h];
j=j-h;}
a[j]=v;
}}
void main()
{
int i, a[5]={5,4,3,2,1};
select(a,0,4);
for(i=0;i<5;i++)
printf("%d",a[i]);
}///希望他从小到大 排序,但是就是出不来结果,还是 5 4 3 2 1,那位帮忙看看
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huwei001982 2005-05-31
  • 打赏
  • 举报
回复
void select(int a[],int low,int high)
{
int imin = 0;
for (int i = low; i < high; ++i)
{
imin = i;
for (int j = i+1; j <=high; ++j)
{
if (a[imin]>a[j])
imin = j;
}
int tmp = a[i];
a[i] = a[imin];
a[imin] = tmp;
}
}
zhousqy 2005-05-31
  • 打赏
  • 举报
回复
mark
xiongbing528 2005-05-31
  • 打赏
  • 举报
回复
还是看不出错误是什么。我真是问题少年啊
jixingzhong 2005-05-31
  • 打赏
  • 举报
回复
老兄 以后记得源代码要加注释!!

while(j>=heigh+low&&v<a[j-h])


循环条件错误。

70,036

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧