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;
}
最佳回答:
哈哈,return只能返回一個值的,不可能返回兩個值!
如果要返回多個值,需要通過參數傳遞的。
你的程序這樣修改就對了:
#include <stdio.h>
int max(int x,int y)
{
return x>y? x:y;
}
int main()
{
int a,b,c,d;
scanf("%d,%d",&a,&b);
c=max(a,b);
d=c+100;
printf("Max is %d,%d",c,d);
return 0;
}
也可以這樣修改:
#include <stdio.h>
void max(int x,int y, int *max,int *m100)
{
int m;
m=x>y? x:y;
*max=m;
*max100=m+100;
}
int main()
{
int a,b,c,d;
scanf("%d,%d",&a,&b);
max(a,b,&c,&d);
printf("Max is %d,%d",c,d);
return 0;
}
它不通過return返回,而是通過參數max和max100返回兩個值!
它用到指針,參數采用傳遞地址的方式。
供參考,你應該會明白的。