C语言程序 为什么此程序的运行结果为 3,5,5,3??我自己分析是5,3,6,2
voidfun(intx,inty);main(){intx=5,y=3;fun(x,y);printf(“%d,%d\n”,x,y);}voidfun(intx,int...
void fun (int x,int y );
main()
{
int x=5,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}
void fun (int x,int y )
{
x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d,”,x,y);
} 展开
main()
{
int x=5,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}
void fun (int x,int y )
{
x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d,”,x,y);
} 展开
4个回答
展开全部
void fun()功能为互换两个数,结果:3,5,
main()调用fun(a,b)后,由于参数传递为值传递,单向传递,结果不能传回主调函数,所以main()内a和b之不变,结果5,3
所以,此程序的运行结果为 3,5,5,3
main()调用fun(a,b)后,由于参数传递为值传递,单向传递,结果不能传回主调函数,所以main()内a和b之不变,结果5,3
所以,此程序的运行结果为 3,5,5,3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在这段代码中fun方法(函数,我是学java的,习惯说方法)的功能是将接受收的两个参数的值互换并打印出来,无返回值.
在main方法中调用了fun方法,并把x,y的值传递进去,并打印出来,所以是3,5
而main方法中的x,y的值并没有改变,所以main方法中的printf语句是将x,y的值打印出来,所以是,5,3
在main方法中调用了fun方法,并把x,y的值传递进去,并打印出来,所以是3,5
而main方法中的x,y的值并没有改变,所以main方法中的printf语句是将x,y的值打印出来,所以是,5,3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你的自定义函数没有返回值 是void的,
所以fun函数只做输出x,y值的作用
那么来分析一下,你给fun函数传递进去 ,5,3
首先赋值运算这,1.x=x+y;x=5+3;x=8;
2.y=x-y;y=8-3;y=5;
3.x=x-y;x=8-5;x=3;
所以输出个 3,5;
既然fun函数没有返回值,所以x,y的值不影响main函数的执行,也就是说main函数中,x,y的值没有被改变
所以输出 5,3
所以fun函数只做输出x,y值的作用
那么来分析一下,你给fun函数传递进去 ,5,3
首先赋值运算这,1.x=x+y;x=5+3;x=8;
2.y=x-y;y=8-3;y=5;
3.x=x-y;x=8-5;x=3;
所以输出个 3,5;
既然fun函数没有返回值,所以x,y的值不影响main函数的执行,也就是说main函数中,x,y的值没有被改变
所以输出 5,3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先fun函数内
x=5 y=3
x=x+y 后 x=8
y=x-y 后 y=5
x=x-y 后 x=3
所以第一组输出是3,5,
至于为什么第二组是5,3,
那是因为你函数使用的是值参 而函数执行完成后 值参的传参方式不改变参数的值
x=5 y=3
x=x+y 后 x=8
y=x-y 后 y=5
x=x-y 后 x=3
所以第一组输出是3,5,
至于为什么第二组是5,3,
那是因为你函数使用的是值参 而函数执行完成后 值参的传参方式不改变参数的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询