關于返回值的問題,請求解答
#include <stdio.h>
/* Jone算出結果應該怎么寫函數? */
?int? joneResult(int x, int y, int z)
{
? ?int sum = x+y+z;
? ?return sum/3;? ? ? ? ? //這里是不是應該將sum返回呢?
}
/* Jack沒有算出結果只說了一句話是不是應該用無返回值函數? */
?int 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運算結果是:%d\n", jR);
? ? printf("Jack運算結果是:");
? ? jackResult(a,b,c);
? ? //Jack沒有算出結果只說了句話,是不是直接調用函數就可以了?
? ? return 0;
}
上面第二個自定義函數中為什么沒有retrun,也能繼續,還有就是如果int更換成void然后加上retrun也能繼續運行
2019-07-12
前面那個問題,是因為程序沒有語法錯誤,c語言沒有規定函數必須有返回值,沒有也行,可以運行,只是運行之后你不能得到他的用變量保存他的結果,只要調用了函數就能運行
后面那個問題,可以return,但是接受不到他返回的值,而且要強行接收還會報錯