3 回答

TA貢獻1797條經驗 獲得超4個贊
首先fun函數相當于執行,兩個數字的相加函數
"fun((int)fun(a+c,b),(a-c))"的結果為"fun(a+c,b)+(a-c)"
因為"fun(a+c,b)"的結果為"(a+c)+b"
所以"fun((int)fun(a+c,b),(a-c))"的最終結果為"(a+c)+b+(a-c)"
最后的結果為(2+8)+5+(2-8),得9
因為輸出格式為%3.0,意為輸出數據占3列,保留0為小數,自己處理一下就可以了

TA貢獻1804條經驗 獲得超7個贊
printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));
相當于 printf("%3.0f\n",xxx); 目的是打印逗號后面的值,值的格式為%3.0f 即 以3位浮點值輸出,小數位為0
fun((int)fun(a+c,b),(a-c)) 相當于 fun(x1,x2) ,依據最上面一行對該函數的定義,是求兩個數的和
這里的x1 又一次調用了(int)fun(a+c,b) 相當于 a+c+b 的值,然后轉變為整數
x2 等于 a-c
最終相當于 a+b+c + a-c 等于2a+b ,結果為9

TA貢獻1836條經驗 獲得超5個贊
結果為9,首先調用一次fun函數(int)fun(a+c,b),此時函數返回15,此時的打印函數為printf("%3.0f\n",fun(15,(a-c));再次調用fun函數,函數返回15+(2-8)的結果即9
- 3 回答
- 0 關注
- 121 瀏覽
添加回答
舉報