C语言程序题目求解。。。。

(33)有以下程序
  #include
  int fun (int x,int y)
  { if (x!=y) return ((x+y)/2);
  else return (x);
  }
  main()
  { int a=4,b=5,c=6;
  printf("%d\n",fun(2*a,fun(b,c)));
  }
  程序运行后的输出结果是
  A)3 B)6 C)8 D)12
求解 答案说fun(b,c)的结果为5 不懂啊?我觉得是2啊 = =

您好!

因为fun是int类型的函数(5+6)/2=5.5,但是要返回整型
所以fun(b,c)的结果是int型的5

如果认为讲解不够清楚,请追问。如果满意,请采纳,谢谢!
祝:学习进步!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-24
就是2 。别看答案的。而且本身代码就有错。我修改了下。你运行看看。
#include <stdio.h>
int main()
{
int fun(int x,int y);
int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
int fun(int x,int y)
{
if (x!=y)
return ((x+y),2);
else
return (x);
}
第2个回答  2013-03-24
fun函数写的有点问题啊。。第三行return ((x+y);2);