为了账号安全,请及时绑定邮箱和手机立即绑定

结果和求解过程,请教大虾帮忙看看哦

结果和求解过程,请教大虾帮忙看看哦

C
偶然的你 2023-03-05 10:06:08
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为小数,自己处理一下就可以了

查看完整回答
反对 回复 2023-03-08
?
三国纷争

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

查看完整回答
反对 回复 2023-03-08
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

结果为9,首先调用一次fun函数(int)fun(a+c,b),此时函数返回15,此时的打印函数为printf("%3.0f\n",fun(15,(a-c));再次调用fun函数,函数返回15+(2-8)的结果即9

查看完整回答
反对 回复 2023-03-08
  • 3 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信