-
繁星coding
首先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为小数,自己处理一下就可以了
-
三国纷争
printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));相当于 printf("%3.0f\n",xxx); 目的是打印逗号后面的值,值的格式为%3.0f 即 以3位浮点值输出,小数位为0fun((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
-
一只甜甜圈
结果为9,首先调用一次fun函数(int)fun(a+c,b),此时函数返回15,此时的打印函数为printf("%3.0f\n",fun(15,(a-c));再次调用fun函数,函数返回15+(2-8)的结果即9