请高手看看我的程序
输入两个数,输出最大值和 最大值+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;
}
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 就是表示子程序的调用到此结束。要传回几个值,只能用指针。
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;
这个就是把函数当表达式来使用的
可以当参数。表达市和语句使用
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;
}
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;
}