C语言编写的插入排序

wo__666 2012-10-11 08:28:21
#include<stdio.h>
#include<conio.h>
main()
{
int N;
int a[]={0};
int v,i,j;
printf("please input the number:");
scanf("%d",&N);
printf("please input ");printf("%d",N);printf(" numbers:");
for(i=0;i<N;i++)
scanf("%d ",&a[i]);
for(i = 1;i<N;i++)
{
v = a[i];
j=i-1;
while(j>=0&&a[j]>v)
{
a[j+1]=a[j];
j--;
}
a[j+1]=v;
}
for(i = 0;i<N;i++)
printf("%d ",a[i]);
getch();
}

运行后输入数字却得不到正确结果,请大家帮忙看看!
...全文
133 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
newtee 2012-10-11
  • 打赏
  • 举报
回复
楼主不说话?
newtee 2012-10-11
  • 打赏
  • 举报
回复
while(j>=0&&a[j]>v)
{
a[j+1]=a[j];
j--;
}
a[j+1]=v;
} j--后j=-1 跳出while循环
直接插入算法错误
newtee 2012-10-11
  • 打赏
  • 举报
回复
目测一下a[]={0} 那么就是a[1]={0}

69,336

社区成员

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

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