| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:if(j>m) pd[j]=pd[m];的困惑
取消只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:2 
if(j>m) pd[j]=pd[m];的困惑

# include<iostream.h>
//这是一个排序函数并未进行数据位置交换,但却能正确的排序

template < int size,class T >
void show_in_order(T date[])//排序函数
{
T *pd[size];
int m;
for(m=0;m<size;m++)
pd[m]=&date[m];
for(m=0;m<size-1;m++)
{
int j=m;
for(int i=m+1;i<size;i++)
if(*pd[i]<*pd[j])
j=i;
cout<<*pd[j]<<' '; //(我测试的数据是[8,7,6,5]如果去掉下面这个语句if(j>m) pd[j]=pd[m];cout<<*pd[size-1];)
//问题1:我想这句话应该输出的为(5,5,5,5)但是输出为(5,5,5)为什么?

if(j>m) pd[j]=pd[m]; ////因为我测试的数据是[8,7,6,5]所以j>m总是成立,
//问题2:这句话if(j>m) pd[j]=pd[m];的是的作用主要体现在何处?
}
cout<<*pd[size-1];
}

void main()
{
int Date[]={8,7,6,5};
# define Size sizeof(Date)/sizeof(Date[0])
int m;
cout<<endl<<"排序前:";
for (m=0;m<Size;m++)
cout<<Date[m]<<' ';
cout<<endl<<"排序效果:";
show_in_order<Size>(Date);
cout<<endl<<"排序后:";
for(m=0;m<Size;m++)
cout<<Date[m]<<' ';
}

[此贴子已经被作者于2006-8-21 11:10:45编辑过]

搜索更多相关主题的帖子: 困惑 
2006-08-19 21:50
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 

求大家帮忙给指点一下!我实在想不通?

2006-08-21 17:38
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
wfpb谢谢你的帮助!
我今天来的晚!看了你的帖子非常高兴!,我正在思考着你的帖子,先道声谢谢!
2006-08-22 21:43
快速回复:if(j>m) pd[j]=pd[m];的困惑
数据加载中...
 
   



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

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