c++怎样用一个函数返回两个参数
我看了很多人回答用结构体或引用。但我由于学了之后扔了1年左右,现在关于这些都忘得差不多了。所以能不能以结构体为例讲详细一点。比如说,设计一个函数,输入一个长度,一个角度,...
我看了很多人回答用结构体或引用。但我由于学了之后扔了1年左右,现在关于这些都忘得差不多了。所以能不能以结构体为例讲详细一点。
比如说,设计一个函数,输入一个长度,一个角度,需要返回一个长度和一个角度
我现在用了
struct jiegou
{
double l;
double angle;
};
double calcu(double a,double b,double l,double angle)
{
double l1,angle1;
......;
在这里需要在主函数中返回l1和angle1的值,需要怎么处理? 展开
比如说,设计一个函数,输入一个长度,一个角度,需要返回一个长度和一个角度
我现在用了
struct jiegou
{
double l;
double angle;
};
double calcu(double a,double b,double l,double angle)
{
double l1,angle1;
......;
在这里需要在主函数中返回l1和angle1的值,需要怎么处理? 展开
4个回答
2015-06-11 · 知道合伙人互联网行家
关注
展开全部
c++中函数定义格式如下:
返回值类型 函数名([参数列表]) ; //可以没有参数
如:
int str_len( char *s ) ;
//int表示函数有一个整型的返回值,
//s是参数,类型为char *,
//str_len是函数名
一个函数只能有一个返回值,即:只能返回一个变量的信息(数值)。这既是规定,也是现实情况。
函数可以没有返回值,这时返回值类型需要写成void,如:
void prt_str( char *s ); //这个函数没有返回值,只是完成一定的函数功能。
上面说了,一个函数,只能返回一个变量的值,那需要返回多个变量的值,如何办呢?解决办法只有一个:通过指针形式的参数来完成变量的值的带回。如:
展开全部
给你写一个简单的吧,不用结构体的。
#include "iostream.h"
void calcu(int *a,int *b,int *l,int *angle)
{
//进行相应的操作
//比如...
*l += *a;
*angle += *b;
//不需要return,l、angle的值已经改变了,因为传递函数参数是指针类型
}
void main()
{
int a1=1,a2=2,a3=3,b1=4,b2=5,b3=6;
int l=2,angle=2;
calcu(&a1,&b1,&l,&angle);//l=2+1=3 angle=2+4=6
calcu(&a2,&b2,&l,&angle);//l=3+2=5 angle=6+5=11
calcu(&a3,&b3,&l,&angle);//l=5+3=8 angle=11+6=17
cout<<l<<" "<<angle<<endl;
}
#include "iostream.h"
void calcu(int *a,int *b,int *l,int *angle)
{
//进行相应的操作
//比如...
*l += *a;
*angle += *b;
//不需要return,l、angle的值已经改变了,因为传递函数参数是指针类型
}
void main()
{
int a1=1,a2=2,a3=3,b1=4,b2=5,b3=6;
int l=2,angle=2;
calcu(&a1,&b1,&l,&angle);//l=2+1=3 angle=2+4=6
calcu(&a2,&b2,&l,&angle);//l=3+2=5 angle=6+5=11
calcu(&a3,&b3,&l,&angle);//l=5+3=8 angle=11+6=17
cout<<l<<" "<<angle<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
struct jiegou
{
double l;
double angle;
};
double calcu(double a, double b, double l, double angle, struct jiegou& S)
{
double l1 = 0.5,
double angle1 = 0.8;
//由于形参是引用,因此对下列成员进行的修改等同对jiegou的成员修改。
S.l = l1;
S.angle = angle1;
return 0;
}
int main()
{
jiegou A;
//不知道LZ您的程序有何目的,这里我前三个实参取0,最后的实参是一个结构体的对象
calcu(0,0,0,0,A);
//测试:输出结果 0.5;
cout << A.l << endl;
return 0;
}
using namespace std;
struct jiegou
{
double l;
double angle;
};
double calcu(double a, double b, double l, double angle, struct jiegou& S)
{
double l1 = 0.5,
double angle1 = 0.8;
//由于形参是引用,因此对下列成员进行的修改等同对jiegou的成员修改。
S.l = l1;
S.angle = angle1;
return 0;
}
int main()
{
jiegou A;
//不知道LZ您的程序有何目的,这里我前三个实参取0,最后的实参是一个结构体的对象
calcu(0,0,0,0,A);
//测试:输出结果 0.5;
cout << A.l << endl;
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主函数中返回l1和angle1的值???
函数返回吧.
函数返回吧.
更多追问追答
追问
不是,这个calcu函数要在主函数中反复用4次,前一次的l1和angle1要作下一次的l和angle,想过循环,但是每一次的a和b又不一样
追答
可以用迭代.
返回两个参数就是引用,比如函数double calcu(double *a,double *b,double *l,double *angle).
不知道具体功能,没法帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询