C语言中return语句怎样返回两个或多个值

请高手看看我的程序
输入两个数,输出最大值和 最大值+100。
主函数调用max函数,我想知道max函数怎样返回两个值给主函数,
我这个程序不知有什么错误,运行时我输入123,45 却输出得到Max=123,3
我这程序应怎样改?
#include "stdio.h"
void main()
{int max(int x,int y,int z,int h);
int a,b,c,d;
scanf("%d,%d",&a,&b);
c=max(a,b,c,d);
printf("Max is %d,%d",c,d);
}
int max(int x,int y,int z,int h)
{z=x>y? x:y;
return z;
h=z+100;
return h;
}
不好意思,程序我漏了一句,在第六句c=max(a,b,c,d);后面还有一句d=max(a,b,c,d);

第1个回答  2008-12-04
int max(int x,int y,int *z); /*建议该成指针*/

void main()
{
//int max(int x,int y,int z,int h);
int a,b,c,d;
scanf("%d,%d",&a,&b);
//c=max(a,b,c,d); /*c,d是什么值??*/
d=max(a,b,&c);
printf("Max is %d,%d",c,d);
getch();
}
#if(0)
int max(int x,int y,int z,int h)
{
z=x>y? x:y;
return z;
h=z+100;
return h;
}
#endif
int max(int x,int y,int *z)
{
int h;
if(x>y){
*z=x;
printf("Max is %d",*z);
}else{
*z = y;
}
h=*z+100;
return h;
}
第2个回答  2008-12-04
#include "stdio.h"
void main()
{
int max(int x,int y,int *z,int *h);
int a,b,c,d;
int *z = &c,*h =&d;
scanf("%d,%d",&a,&b);
max(a,b,z,h);
printf("Max is %d,%d",c,d);
}

void max(int x,int y,int* z,int *h)
{
*z = x > y ? x : y;
*h = *z + 100;
}
在C语言中return 是值能传回1个值的return 就是表示子程序的调用到此结束。要传回几个值,只能用指针。
第3个回答  2015-09-10

    可以通过结构体来返回数值【不推荐

    还可以通过传入指针来保存需要返回的数值【比较常用

    还可以通过在内部申请内存,并返回指针的方式来返回多个值

    return语句一般不期望返回多个值,建议你采用第二种方式来处理

第4个回答  2008-12-06
最大值加100完全可以在主函数里你想放置的位置加上

zuidazhijia100=max(a,b,c,d)+100;

这个就是把函数当表达式来使用的
可以当参数。表达市和语句使用
第5个回答  2008-12-04
#include "stdio.h"
void main()
{int max(int x,int y,int *z,int *h);
int a = 0,b = 0,c = 0,d = 0;
scanf("%d,%d",&a,&b);
max(a,b,&c,&d);
printf("Max is %d,%d",c,d);
}
int max(int x,int y,int *z,int *h)
{
*z=x>y? x:y;
*h=*z+100;
return 1;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网