#include #include /*************代码开始**********/ int lastp=0; //已存放数据的元素的最大下标 void insert(int a[],int x) { int p=0,newp; while(p=newp;p--) //将插入位置以后的数据全部后移一位 a[p+1]=______; a[newp]=x; lastp++; } void main() { int a[100],i,x; for(i=0;i<10;i++) { scanf("%d",&x); ______; } for(i=0;i<10;i++) printf("%5d",a[i]);; system("pause"); }
a[p]
a[i]=x
帮你写一下
#include "stdio.h"
void main()
{
int a[10]={89,1,64,35,74,21,100,99,1000,2};
int i,temp,pos,k;
printf("排序之前:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
for(i=1;i<10;i++)
{
temp=a[i];
pos = i-1;
//把前面大于temp的数据往后移
while((pos>=0) && (temp<a[pos])){//后面的元素小于前面的元素
a[pos+1]=a[pos]; //后面一个元素等于前面一个元素的值
//打印排序过程
printf("i=%d,temp=%d,pos=%d\n",i,temp,pos);
for(k=0;k<10;k++)
printf("%d\t",a[k]);
printf("\n");
//-------------------------------------------------
pos--;
}
//把temp的值插入到pos+1的位置
a[pos+1]=temp;
printf("后移结束,把数据插入到pos+1的位置\n");
for(k=0;k<10;k++)
printf("%d\t",a[k]);
printf("\n");
}
printf("排序之后:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632