| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:[经验][原创][求助][讨论]一个函数,怎么返回一个以上值?
只看楼主 加入收藏
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
收藏
 问题点数:0 回复次数:6 
[经验][原创][求助][讨论]一个函数,怎么返回一个以上值?

一个函数,怎么返回一个以上的值?
比如,我要得到任意三点(不共面)的外接圆圆心坐标和半径

double radiu(double x1,double x2,double x3,double y1,double y2,double y3)
{

double radiu;
double x=0;
double y=0;

x=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(2*(x3-x1)*(y2-y1)-2*((x2-x1)*(y3-y1)));
y=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(2*(y3-y1)*(x2-x1)-2*((y2-y1)*(x3-x1)));
radiu=sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));

return radiu;
}
这样,只能返回半径radiu的值啊,怎么再能得到圆心坐标x和y的值呢?

搜索更多相关主题的帖子: 函数 经验 
2006-02-23 16:43
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 
你可以放在参数表里。
比如:
double wx=0;
double wy=0;
double radiu(double x1,double x2,double x3,double y1,double y2,double y3,double &wx,double &wy)
{
……
}

不要意思,忘了加引用了。

[此贴子已经被作者于2006-2-23 16:53:27编辑过]


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-23 16:49
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
收藏
得分:0 
就像你所说的那样,那么在程序中,我要把圆心坐标x值赋给centerx,把圆心坐标y值赋给centery,
那应该怎么做呢?
centerx=wx;
centery=wy;

???

(柳儿)版主,能不能给个qq号啊???

认真你就输了
2006-02-23 17:01
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 

我给你写个小程序哈,你运行一下看看就知道我的意思了。
下面的wx和wy是在 函数f(double,double)里被赋值的,相当于是返回值啦。要注意函数参数表里的&符号。
还有wx,和wy必须定义在函数外面。这个涉及到传递参数的方式,一种是值传递,一种是引用传递。这里用的就是引用传递。

#include <iostream>
using namespace std;

void f(double &X,double &Y)
{
X=4.5;
Y=5.6;
}

int main()
{
double wx=0;
double wy=0;
f(wx,wy);
cout << wx << ", " << wy << endl;
return 0;
}


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-02-23 17:06
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
柳儿这个技巧是可以的。
还有另外两个技巧,一个就是如果你返回的数据,都具有相同的类型,那么将他们放在一个数组里,然后返回数组首地址,那么如果那些数据为不同类型呢?办法还是有的,同样也是用整合的办法,也就是说把这些数据捆绑起来,前面用数组来捆绑,因为数据类型相同,如果数据类型不同,那么用struct 或 class 来捆绑,相对复杂一些而已。 理解否?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-02-23 17:22
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
收藏
得分:0 

好的,明白了,谢谢!


认真你就输了
2006-02-24 15:51
西部天狼
Rank: 1
等 级:新手上路
帖 子:95
专家分:0
注 册:2006-2-23
收藏
得分:0 

应该将它理解为函数设置多个值


学习-->编程-->交流-->再学习-->再编程-->再交流
2006-02-24 23:55
快速回复:[经验][原创][求助][讨论]一个函数,怎么返回一个以上值?
数据加载中...
 
   



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

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