主要不理解 d=f(f(3,4),f(3,5)); 求高手指点

int f(int x,int y)
{
return((y-x)*x);
}
main()
{
int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行结果是 9

f(3,4) 是将3和4分别作为参数传给了函数f,即x=3,y=4,
函数f的表达式是返回((y-x)*x),我们将值代入,可得((4-3)*3),即f(3,4)=3,f(3,5)=6,

再将f(3,4)=3和f(3,5)=6 分别作为X,Y代入f函数,即f(3,6)=9.
这样可以看得明白吗?兄弟。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-05
这句话首先先计算f(3,4),计算结果为3,然后计算f(3,5),计算结果为6,最后计算f(3,6),计算结果为9
希望能够帮到你。
第2个回答  2013-03-05
d=f(f(3,4),f(3,5));

f(3,4) return((4-3)*3) 返回 3
f(3,5) return((5-3)*3) 返回 6

d=f(f(3,4),f(3,5)); 等同 d = f(3,6) return((6-3)*3) 返回 9
第3个回答  2013-03-05
函数f(3,4)=3,f(3,5)=6 , 那么函数d=f(f(3,4),f(3,5))就等同于d=f(3,6),而f(3,6)的值计算出来是9,不知道我说明白没有追问

函数f(3,4)=3 为什么等于3,f(3,5)=6为什么等于6?麻烦你解析下吧

追答

f(3,4)=(4-3)*3=3,f(3,5)=(5-3)*3=6,f(3,6)=(6-3)*3=9

相似回答