/*2015,烟台大学计算机与控制工程学院
*作者:张瑞蕾
*完成日期:2015年9月7日
*版本:v1.0
*问题描述:希望能够交换两个整型变量
*/
//方法一:
#include<iostream>
using namespace std;
void myswap(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数: "<<endl;
cin>>a>>b;
myswap(&a,&<pre class="cpp" name="code">#include<iostream>
using namespace std;
void myswap(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数: "<<endl;
cin>>a>>b;
myswap(a,b);
cout<<"调用函数后的结果是:"<<a<<" "<<b<<endl;
return 0;
}
b);cout<<a<<b;return 0;
法一错误;
//方法二:
#include<iostream>
using namespace std;
void myswap(int *p1,int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数: "<<endl;
cin>>a>>b;
myswap(&a,&b);
cout<<"调用函数后的结果是:"<<a<<" "<<b<<endl;
return 0;
}
运行结果:
//方法三:
#include<iostream>
using namespace std;
void myswap(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数: "<<endl;
cin>>a>>b;
myswap(a,b);
cout<<"调用函数后的结果是:"<<a<<" "<<b<<endl;
return 0;
}
运行结果:
总结:
法一错误是因为只改变了形参,而为改变实参。法二和法三交换了实参,因此可成功。
学习心得:
对待问题要从各个角度去思考,不可局限于一角。