找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1503|回复: 6

[经验][原创][求助][讨论]一个函数,怎么返回一个以上值?

[复制链接]
发表于 2009-11-2 02:13:27 | 显示全部楼层 |阅读模式 IP:江苏扬州
一个函数,怎么返回一个以上的值?
比如,我要得到任意三点(不共面)的外接圆圆心坐标和半径

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的值呢?
发表于 2009-11-2 02:13:28 | 显示全部楼层 IP:江苏扬州
你可以放在参数表里。
比如:
double wx=0;
double wy=0;
double radiu(double x1,double x2,double x3,double y1,double y2,double y3,double &wx,double &wy)
{
……
}

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

使用道具 举报

发表于 2009-11-2 02:13:30 | 显示全部楼层 IP:江苏扬州
就像你所说的那样,那么在程序中,我要把圆心坐标x值赋给centerx,把圆心坐标y值赋给centery,
那应该怎么做呢?
centerx=wx;
centery=wy;

???

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

使用道具 举报

发表于 2009-11-2 02:13:31 | 显示全部楼层 IP:江苏扬州
我给你写个小程序哈,你运行一下看看就知道我的意思了。
下面的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;
}
回复

使用道具 举报

发表于 2009-11-2 02:13:32 | 显示全部楼层 IP:江苏扬州
柳儿这个技巧是可以的。
还有另外两个技巧,一个就是如果你返回的数据,都具有相同的类型,那么将他们放在一个数组里,然后返回数组首地址,那么如果那些数据为不同类型呢?办法还是有的,同样也是用整合的办法,也就是说把这些数据捆绑起来,前面用数组来捆绑,因为数据类型相同,如果数据类型不同,那么用struct 或 class 来捆绑,相对复杂一些而已。 理解否?
回复

使用道具 举报

发表于 2009-11-2 02:13:34 | 显示全部楼层 IP:江苏扬州
好的,明白了,谢谢!
回复

使用道具 举报

 楼主| 发表于 2009-11-2 02:13:36 | 显示全部楼层 IP:江苏扬州
应该将它理解为函数设置多个值
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:27 , Processed in 0.215524 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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