标题:排列程序问题???
只看楼主
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
 问题点数:0 回复次数:7 
排列程序问题???

#include <stdio.h>
main()
{
int i, j, k,temp,item[5]={23,13,66,98,54};
for(i=0;i<4;i++;)
{
k=i;
for(j=i+1;j<5;j++;)

if(item[j]<item[k])
{k=j;}
if(i!=k)
{ temp=item[k];
item[k]=item[i];
item[i]=temp;
}
}
}
程序中的"if(item[j]<item[k]) {k=j;}"怎么理解啊

搜索更多相关主题的帖子: 排列 int temp item 
2007-01-30 15:05
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 

好象是记录两个数中最小的一个数的位置.


~~我的明天我知道~~
2007-01-30 15:39
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
[QUOTE]for(i=0;i<4;i++;)
{
k=i;
for(j=i+1;j<5;j++;)

if(item[j]<item[k])
{k=j;}
if(i!=k)[/QUOTE]

这段最难懂,能不能详细解释下啊!!!谢谢
2007-01-30 15:48
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
得分:0 
比如说当i=0时,k=0,j=1,if (item[1]&lt;item[0])就把1赋值到k.也就是说经过一次比较,找到了其中较小的一个数,它的位置是k=1;

~~我的明天我知道~~
2007-01-30 15:54
jianfeng11
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-1-30
得分:0 
恩,是这样的,经过四次循环后,其实就是将数组里面小的值放到数组的前面位置

我要成为高手,半个也行。总是个高手吧,哈哈哈哈
2007-01-30 16:24
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
原来是这样啊,书上写的有问题啊
书上说,每次循环找出最大的放放到R0中去,R0应该是最前面的一个元素了吧
2007-01-30 17:52
jkmaple
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-1-15
得分:0 
for(i=0;i<4;i++;)
{
k=i;
for(j=i+1;j<5;j++;)

if(item[j]<item[k])
{k=j;}
相邻的两个数相较,如果后面的数小于前面的数,则将后面的赋给前面的那个数。

2007-01-30 18:26
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
得分:0 
谢谢指导,我清楚点了
2007-01-30 21:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-118864-1-1.html




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

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