紧急请教!!!在线!!!!!!!!等!!!!

CassiaBlossom 2005-06-23 11:14:22
#include"stdio.h"
void BInsertSort(int l[],int n)
{
int low,high,temp,i,j,mid;
for(i=2;i<=n;i++){
temp=l[i];
low=1;
high=i-1;
while(low<=high){
mid=(low+high)/2;
if(temp<l[mid]) high=mid-1;
else low=mid+1;
}
for(j=i-1;j>low;j--) l[j+1]=l[j];
l[low]=temp;
}
}

void main()
{
int i;
static int l[]={2,6,8,4,5,7,9};
BInsertSort(l,7);
for(i=0;i<7;i++) printf("%d\t",l[i]);
}


看看哪里有问题?????

输出结果有问题的!

...全文
138 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-06-24
  • 打赏
  • 举报
回复
#include"stdio.h"
这个就不对了。。
CassiaBlossom 2005-06-24
  • 打赏
  • 举报
回复
我用的是VC++6.0编译的,不知道是不是和TC不一致?
wenchang211 2005-06-24
  • 打赏
  • 举报
回复
#include"stdio.h"
void BInsertSort(int l[],int n)
{
int low,high,temp,i,j,mid;
for(i=2;i<=n;i++){
temp=l[i];
low=1;
high=i-1;
while(low<=high){
mid=(low+high)/2;
if(temp<l[mid]) high=mid-1;
else low=mid+1;
}
for(j=i-1;j>low;j--) l[j+1]=l[j];
l[low]=temp;
}
}

void main()
{
int i;
static int l[]={2,6,8,4,5,7,9};
BInsertSort(l,7);
for(i=0;i<7;i++) printf("%d\t",l[i]);
}
取掉static 数组也可以分配啊 杂不行啊

wenchang211 2005-06-24
  • 打赏
  • 举报
回复
楼主 是你用的static 有问题 把那个去掉原来那个程序就对了
数组当然可以动态分配了 你看的程序太少了
CassiaBlossom 2005-06-23
  • 打赏
  • 举报
回复
#include"stdio.h"
void BInsertSort(int l[],int n )
{
int low,high,temp,i,j,mid;
for(i=1;i<=n-1;i++){
temp=l[i];
low=1;
high=i-1;
while(low<=high){
mid=(low+high)/2;
if(temp<l[mid]) high=mid-1;
else low=mid+1;
}
for(j=i-1;j>=high+1;j--){ l[j+1]=l[j];}
l[low]=temp;
}
}

void main()
{
int i;
static int l[100]={2,6,8,4,5,7,9};
BInsertSort(l,7);
for(i=0;i<7;i++) printf("%d\t",l[i]);
}


这样就没有问题了,真是奇怪!

不是数组不可以动态给定定义大小吗?怎么这里就行呢????
CassiaBlossom 2005-06-23
  • 打赏
  • 举报
回复
输出结果是2 0 5 5 7 8 8 为什么????
CassiaBlossom 2005-06-23
  • 打赏
  • 举报
回复
这是一个折半插入排序的程序!哪里有问题呀!!!!!

70,021

社区成员

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

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