设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1893|回复: 3
打印 上一主题 下一主题

if(j*m) pd[j]=pd[m];的困惑

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 04:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
# 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]<<' ';
}
2#
发表于 2009-11-3 04:16:01 | 只看该作者
求大家帮忙给指点一下!我实在想不通?
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 04:16:02 | 只看该作者
以下是引用lixang在2006-8-19 21:50:54的发言:

# include<iostream>
//这是一个排序函数并未进行数据位置交换,但却能正确的排序
using namespace std;
//这是一个排序函数并未进行数据位置交换,但却能正确的排序
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]<<' ';//因为循环次数为size-1,所以输出3次
//前两次输出最小的5,6
//整个函数并没有达到排序的效果,但是达到的输出的效果,也就是说
//输出5,6并没有排序。7,8在下面的关系式中被排序(最后两个位置*pd[2],*pd[3]),然后由于关系式
//if(*pd[i]<*pd[j])不满足,所以直接输出*pd[2].
if(j>m) pd[j]=pd[m];
}
//所以正个循环以后输出的是5,6,*pd[2]。
cout<<*pd[size-1];//然后输出*pd[3].
//此时:*pd[0]=8,*pd[1]=7,*pd[2]=7,*pd[3]=8
}
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,int>(Date);
cout<<endl<<"排序后:";
for(m=0;m<Size;m++)
cout<<Date[m]<<' ';
}
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 04:16:03 | 只看该作者
wfpb谢谢你的帮助!
我今天来的晚!看了你的帖子非常高兴!,我正在思考着你的帖子,先道声谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 04:40 , Processed in 0.100501 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表