| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1900 人关注过本帖
标题:请教高手一个问题(是道作业来的)
只看楼主 加入收藏
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用garyxuan在2004-11-06 16:21:53的发言:

template<typename T> void bubble(T a[],int n) { int i,j,t,temp; for(i=n-1;i>=1;i--) { t=n-i; for(j=t;j>=1;j--) if(a[j]>a[j-1]) {temp=a[j];a[j]=a[j-1];a[j-1]=temp;} } }

写对了

[此贴子已经被作者于2004-11-06 17:42:28编辑过]

2004-11-06 17:30
Dream
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2004-11-5
收藏
得分:0 

利用函数直接把那段代码直接放入函数里面,然后申明返回值。不就可以了吗?

有点把我弄糊涂了。


!..我鄙视浮躁的人..! 浮躁的人容易问: 我到底该学什么? 别问,学就对了! 浮躁的人容易问: JS有前途吗? 建议你去抢银行! 浮躁的人容易问: 我要中问版,我英文不行! 不行?学呀! 浮躁的人分两种: 只观望而不学的人; 只学而不坚持的人;
2004-11-06 20:39
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
得分:0 

呵呵,我没看清楚题目,以为是要适用于两种情况,那这道题我已经完成了.多谢版主了.

顺便提一下,我在运行这个程序前,对于输出数组元素并不是用循环,

for(i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;

而是直接用:cout<<a<<endl;但这样不能正确输出,输出一些不知道的东西,请问版主这是怎么一回事.

2004-11-06 20:45
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
是吗?我估计可能在模板里的指针地址不是数组吧。我研究下。
2004-11-06 21:13
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

恩,刚调试了一下,个人认为认为cout<<没有关于具体模板的重载,因为cout<<a<<endl;在普通里面是利用cout<<的关于具体类型数组的重载,而这里数组的类型是最后才确定,于是用不了重载的,就惟有输出地址了。

2004-11-06 22:27
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
另外注意到,(T a[],int n); 其实有些编译器通不过,这里最后(T a[],T n);这样,反正都已经模板了,就模板下去嘛。
2004-11-06 22:28
garyxuan
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2004-8-23
收藏
得分:0 

我想应该是和版主说的一样,那多谢了,不过我要再好好研究一下,我才刚学到吗

2004-11-07 14:18
快速回复:请教高手一个问题(是道作业来的)
数据加载中...
 
   



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

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