程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言中return語句怎樣返回兩個或多個值

C語言中return語句怎樣返回兩個或多個值

編輯:C語言問答

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返回兩個值!
它用到指針,參數采用傳遞地址的方式。
供參考,你應該會明白的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved