永发信息网

c语言插入排序法

答案:2  悬赏:50  手机版
解决时间 2021-12-29 15:24
#include<stdio.h>
int main()
{
int a[12];
int i,j;
int temp;
int pos;
printf("请输入数组:\n");
for(i=0;i<12;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<12;i++)
{
temp=a[i];
pos=i-1;
while((pos>=0)&&(temp<a[pos]))
{
a[pos+1]=a[pos];
pos--;
}
a[pos+1]=temp;
}
for(i=0;i<12;i++)
{
printf("%d\t",a[i]);
}
return 0;
}

这句while((pos>=0)&&(temp<a[pos]))里的temp为何不能直接写卫a[i]
最佳答案
你拿几个数模拟一下就看到了。whille里的循环是负责每趟将最小的数排到它该在的位置,即第i趟循环是保证从0到i的元素单调增排列。temp是用来记录当前i中的元素,有可能while执行一次a[i]处就有了新元素,值就改变了,然而temp还要继续和前面的比较看看是不是仍要往前插入,这个循环一直是while在做
全部回答
因为for循环里面的i是从1开始的,而数组下标从0开始
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
二连位置在什么地方啊,我要过去办理业务
合肥市包河大道和繁华大道交汇处1号盛景融城9
数学不好,适合学习金融专业并且从事金融行业
第Ⅱ卷(非选择题:共35分)第四部分:写作(
仙人桥有既能泡温泉又能住宿的地方?
太阳的外部温度约多少度内部温度高达多少度是
在电脑上装修淘宝店铺,装修手机无线端时为什
下列句子中,划线的成语使用不恰当的一项是A.
特斯拉发明了什么
板房套什么定额
在氮气、氢气、氧气、一氧化碳、二氧化碳、二
俄罗斯世界杯四强是哪个队
根据现存实证,开平碉楼在明代后期已经产生,
改rom大师进!!
新鲜柠檬切片怎么样可以保持新鲜
推荐资讯
圆的周长与它直径的比的比值是A.πB.3.14C.3
五年级下语文第2课《鲁迅与时间》课后练习
丹东市元宝区六道口派出所地址有知道的么?有
电影鬼吹灯之九层妖塔结局没看懂 揭秘九层妖
单选题下列各项符合商朝社会经济发展特点的是
海安县烟草局位置在什么地方啊,我要过去办理
一个人去泰国签证怎么办
我只想思想单纯一点,头脑简单一点好不好?自
有谁记得这个胡老大的真实名字?跪求 50分
我们班级的randall同学生活方式不太健康,他
艾蔻儿童智能手表k1多少钱
御猫店网店交易平台安不安全?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?