原程序中所定义的函数void chang(int x,int y)参数传递为传值方式,因此数据交换后不能返回给调用函数,现在改为引用,传递给chang函数的是两个变量x,y的地址,在函数中所做的变量修改实际是对x,y变量的修改。另外chang函数中if(x>y)语句有误,应该改为if(x
#include
using namespace std;
void chang(int& ,int&);
int main()
{
int a,b,c;
a=2;
b=3;
c=1;
/*cout<<"请您输入三个整数:"<
cin>>b;
cin>>c;*/
chang(a,b);
chang(a,c);
chang(b,c);
cout< return 0;
}
void chang(int& x,int& y)
{
int k;
if(x
k=x;
x=y;
y=k;
}
}
若满意请及时采纳,谢谢
你chang函数里面的变量生命周期只在函数内,不会对外面造成影响,所以要用到指针。
#include
using namespace std;
void chang(int *x, int *y);
int main() {
int a, b, c;
int *pa = &a, *pb = &b, *pc = &c;
a = 2;
b = 3;
c = 1;
/*cout<<"请您输入三个整数:"<cin>>a;
cin>>b;
cin>>c;*/
chang(pa, pb);
chang(pa, pc);
chang(pb, pc);
cout << a << " " << b << " " << c << endl;
return 0;
}
void chang(int *x, int *y) {
int k;
if (*x > *y) {
k = *x;
*x = *y;
*y = k;
}
}
这就涉及到局部变量的关系了 change函数中的形参,函数内部大小改变了,但只是局部改了,这里你可以改成引用 change(int @x,int @y)