c语言习题求解答。

#include <stdio.h>
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)));

}
程序运行后的输出结果是()

求详细解答
还有 fun这个东西始终不懂。。

#include <stdio.h>是引入头文件 这个头文件是 stdio.h标准输入输出
第一个int fun 是一个函数 返回整数型(int) fun是函数名 当然 括号里(int x,int y)是两个整数型参数
函数体由{}括起来 if(x!=y) return((x+y)/2); else return (x);这两句是 如果x不等于y则返回(x+y)/2 的值 否则 返回 x的值
下面的main 是主函数 程序加载完头文件自动运行main函数 一个程序必须要有main函数 一般是int main()这样写比较规范 int a=4,b=5,c=6;这是定义三个整数变量 a,b,c 并赋予初值 语句结束后一定要加分号 printf是输出函数 头文件带的 printf(“%d”,整数变量);这句就是输出整数变量的值 当然 整数变量的位置也可以是一个又返回值的函数 %d代表以一个整数变量替换 不懂的请追问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-18
一共两函数:main()主函数(运行从这里开始);fun(int x,int y) 函数(有人叫到时出来(运行))。
main()里a=4,b=5,c=6
然后printf("%d\n",fun(2*a,fun(b,c))); 是打印 fun(2*a,fun(b,c)) 的返回值(就是叫fun(int x,int y)童鞋出来算一下结果)
就是算 fun(2*a,fun(b,c)) 代入数值后= fun(8, fun(5,6) ) 这里里面fun(5,6) 还不知道是多少,所以先算里面的。(计算式由里而外,类似括号(),嗯我就这么理解吧)。
算fun(5,6) 就是叫 fun(int x,int y)童鞋出来算(告诉他x=5,y=6)。

而if(x!=y) return((x+y)/2); else return (x);的意义是xy不相等就返回(回答)(x+y)/2 (平均数),相等就回答x,

所以fun(5,6)=5.5=应该是5吧?,因为fun(x,y)定义前有int ,表示只回答整数。

fun(8, fun(5,6) ) =fun(8, 5 ) 同理 =int 6.5=6。
所以 显示了一个6。

菜鸟一枚突兴起,肆无忌惮众发指,待高人将来发觉时,念其诚恳勿责怪。
第2个回答  2014-02-18
fun是一个函数
它返回一个整形的变量
它接受2个参数x和y都是整形
函数里面描述了
如果x不等于y的话,就返回x+y然后除以2
如果x等于y就返回x,其实也是y,因为相等。

然后主函数调用这个函数,也就是main函数
首先定义了3 变量a b c
第一次调用是fun(b,c)
因为5不等于6,就返回5+6等于11的二分之一,应该是5.5,但是因为5.5要截取成整形,所以就是5
然后二次函数调用就是fun(2*a,5)
这样返回的就是8和5的平均数的截取6.5的截取是6
所以打印出一个6本回答被提问者采纳
第3个回答  2014-02-18
输出结果是6
fun(b,c)即fun(5,6),因为5不等于6,所以return(5+6)/2,即取整后为5

然后再带入main函数中fun(8,5),同理return(8+5)/2取整后为6
相似回答