
请C语言高手帮忙分析一下下面这个程序,为什么我算出来是1,2,3 而答案是1,3,2呢 求详解啊
voidf(intv,intw){intt;t=v;v=w;w=t;}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y...
void f(int v , int w)
{
int t;
t=v;v=w;w=t;
}
main( )
{
int x=1,y=3,z=2;
if(x>y)
f(x,y);
else if(y>z)
f(y,z);
else
f(x,z);
printf("%d,%d,%d\n",x,y,z);
} 展开
{
int t;
t=v;v=w;w=t;
}
main( )
{
int x=1,y=3,z=2;
if(x>y)
f(x,y);
else if(y>z)
f(y,z);
else
f(x,z);
printf("%d,%d,%d\n",x,y,z);
} 展开
7个回答
展开全部
f 函数是按值传递的 函数内部交换不影响外部的变量 所以还是1 3 2
展开全部
全部正解,可以解引用
void f(int &v, int &w) 这样就好了
其实也不必这么麻烦
直接 max = a > b ? a : b;
min = a < b ? a : b
void f(int &v, int &w) 这样就好了
其实也不必这么麻烦
直接 max = a > b ? a : b;
min = a < b ? a : b
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void f(int v , int w)这个函数不会改变传入参数的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用f()函数
把x的值传递给f()函数里的形参v,
把y的值传递给f()函数的形参w
形参的值改变不影响调用函数的参数,即x,y的值
f()没有返回值
把x的值传递给f()函数里的形参v,
把y的值传递给f()函数的形参w
形参的值改变不影响调用函数的参数,即x,y的值
f()没有返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-19
展开全部
那个f函数只能换变量,而你使用该函数是给点主体x=1,y=2即那函数是f(1,3)不能改变想x,y的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-19
展开全部
你使用的参数不是指针或引用,在你的那个方法中改的是形参而非实参所以结果没变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为f函数中的形参是值传递,而不是地址传递,所以x,y,z的值都不会改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询