#include <stdio.h>/* Jone算出結(jié)果應(yīng)該怎么寫函數(shù)? */?int? joneResult(int x, int y, int z){?? int sum = x+y+z;?? return sum/3;????????? //這里是不是應(yīng)該將sum返回呢?}/* Jack沒有算出結(jié)果只說了一句話是不是應(yīng)該用無返回值函數(shù)? */?void jackResult(int x, int y, int z){??? printf("我算不出來\n");}int main(){??? int a, b, c;??? a = 10;??? b = 20;??? c = 30;??? //Jone的返回值類型是什么???? int???? jR = joneResult(a, b, c); ??? printf("Jone運(yùn)算結(jié)果是:%d\n", jR);??? printf("Jack運(yùn)算結(jié)果是:");??? //Jack沒有算出結(jié)果只說了句話,是不是直接調(diào)用函數(shù)就可以了???? jackResult(a,b,c);??? return 0;}
3 回答
已采納

豈可奈何
TA貢獻(xiàn)5條經(jīng)驗 獲得超3個贊
return作用:
1:結(jié)束該函數(shù)體,并返回調(diào)用處。如果是主函數(shù),則結(jié)束程序。如:
(1)結(jié)束函數(shù)體,并返回調(diào)用處。例子:你可以依次把return前的//給去掉,看一下結(jié)果。(注:第一個return會影響第二個return的效果,除非用控制語句分開。)
#include<stdio.h>
void text() {
//return;//直接結(jié)束函數(shù)返回調(diào)用處,不執(zhí)行下面的
int i=5;//你可以給i改變值來達(dá)到效果
if(i<6){
printf("我執(zhí)行了!\n");
//return;//結(jié)束函數(shù)體,下面不執(zhí)行
printf("return有,看我執(zhí)不執(zhí)行\(zhòng)n");
}
return;/*一般void最后不寫return,因為函數(shù)體結(jié)束后就回到調(diào)用處,所以寫return多余,你可以加雙斜線注釋掉試一試*/
}
int main(){
printf("開始調(diào)用函數(shù)text\n");
text();
printf("結(jié)束調(diào)用函數(shù),return不加值直接返回調(diào)用處\n");
}
(2)如果是主函數(shù),則結(jié)束程序。
你在主函數(shù)后面都有return0;這就是原因。
2:return xx帶值返回。結(jié)束函數(shù)體,并把值帶回到調(diào)用處。如求最大值:
#include<stdio.h>
int max(int a,int b){
if(a>b)
return a;//返回調(diào)用處,并把a(bǔ)值傳出去
else
return b;//兩個return只有一個有用,第一個會影響第二個的傳遞
printf("這個只是說明return就結(jié)束函數(shù)體,無法繼續(xù)執(zhí)行函數(shù)的下面,只是證明一下,不必在意,如果執(zhí)行了這一句,說明程序出錯了");
}
int main(){
int a=4;//可以改變值來看return傳值的結(jié)果
int s=8;
int d;//最大值
d=max(a,s);//將函數(shù)的最大值傳給d
printf("最大值是%d",d);
return 0;
}

- 3 回答
- 0 關(guān)注
- 2646 瀏覽
添加回答
舉報
0/150
提交
取消