在C语言中,如果一个函数返回两个数,return 语句中要怎么表示?是用数组吗

我如果把下面这个程序定义成一个函数,他有两个返回值,而卧的return中只有一个返回值m,在函数调用时应该怎么定义?#include<stdio.h>两个数的比较main... 我如果把下面这个程序定义成一个函数,他有两个返回值,而卧的return 中只有一个返回值m,在函数调用时应该怎么定义?
#include<stdio.h> 两个数的比较
main()
{ int f1,f2,e1,e2; //误差计算函数,若整数部分和小数点前两位均相等,则判为两数相等
double e,f,m,n;
printf("please input two numbers: ");
scanf("%lf%lf",&e,&f);
e2=((int)(e*100))%10;
e1=((int)(e*10))/10;
f2=((int)(f*100))%10;
f1=((int)(f*10))/10;
if((e1==f1)&&(e2==f2))
{ m=((int)(e*100))*0.01;
n=((int)(f*100))*0.01;
printf("m=%.2lf,n=%.2lf",m,n);}
else if ((e1!=f1)&&(e2!=f2))
m=0,n=0;
return m;
}
比如把这个函数定义为 double function(double x,double y,double x), 如果是一个返回值,我们可以定义一个变量s, s=function(a,b,c)进行调用,现在是两个,左边的s应该怎么表示呢?
展开
 我来答
小炮栋栋1
2011-05-28 · TA获得超过431个赞
知道小有建树答主
回答量:359
采纳率:0%
帮助的人:330万
展开全部
你是想返回两个值?
这是不行的,一般是通过指针达到这个效果,但函数只能返回一个值(理论上)。
如果想返回多个值的话,可以用指针或者数组来做为函数的参数.
才能返回多个值的.
如果想返回多个值,对指针或数组不熟悉的可以用全局变量,在函数中用你定义的全局变量,则能改变全局变量的值.再在主程序中用改变后的全局变量就可以达到这个目的.
简单点说,就是用指针,和全局变量,其它的就麻烦了。
追问
对啊,上面的程序有两个输出值m,n,我是想把上面那个程序定义成一个函数,所以应该有两个返回值;就算不定义成函数,上面的程序现在也不对,return 后面只有一个m,
枫啦啦
2011-05-28 · TA获得超过2395个赞
知道小有建树答主
回答量:680
采纳率:0%
帮助的人:787万
展开全部
函数直接用void,参数加上2个指针,用指针当返回后的值
void function(double x,double y,double * x1,double * y1)
{
*x1=第一个返回的值;
*y1=第二个返回的值;
}

在外面调用方法后,再用其他数来接X1,Y1就行了 ,或者直接就用X1,Y1就行
追问
那我上面那个程序,return 后面怎么写?现在肯定是不对的,只返回了一个m
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-05-28 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3717万
展开全部
定义成结构体
struct retval
{
double ret1;
double ret2;
};

返回值类型就写成 struct retval
返回之前给结构成员赋值

还有种方法,通过参数返回
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式