| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 788 人关注过本帖
标题:简单的循环语句提问
只看楼主 加入收藏
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
插入排序问题
#include <stdio.h>
main()
{
int i, j, temp,item[5]={23,12,55,98,43};
for (i=1;i<n;i++;)
{
temp=item[i];
j=i-1;
while (j>=0 && temp<item[j])
{
item[j+1]=item[j];
j--;
}
item[j+1]=temp;
}
}
这个程序求助两天了,都没有理解,能否帮我解释下,下面的几处不能理解!!!
[QUOTE]j=i-1;
while (j>=0 && temp<item[j])
{
item[j+1]=item[j];
j--;
}
item[j+1]=temp;
[/QUOTE]
2007-01-31 16:47
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
当i=1时,temp=item[1]=12;j=0;while(真),就进入循环(如果后面的一个数比前面的数小,就把前面的赋值到它后面的一个数上。)此时数组的排列是,item[5]={12,23,55,98,43}.
当i=2时,temp=item[2]=55,j=1;while(假),终止循环。
当i=3时~~~~~~~~~~~~~~~~~
然后依次进行~~~~~~~~~~
顶~~~~~~~~~~~~

~~我的明天我知道~~
2007-01-31 17:08
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
O  ,xiexie
2007-02-01 01:54
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
[QUOTE] item[j+1]=item[j];
j--;
}
item[j+1]=temp;
[/QUOTE]

既然把item[j]的值,赋给了item[j+1]
那么最后一句话,为什么又把temp赋值给了item[j+1],不是有把12赋值给了item[j+1]了吗

j--在这里起什么作用???
2007-02-01 20:09
快速回复:简单的循环语句提问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016122 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved