loat fun(int x,int y) {return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));}
3 回答
繁星coding
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 关注
- 95 浏览
添加回答
举报
0/150
提交
取消