jhljx学函数

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 39 总提交人数: 44

题目描述

jhljx听说大家学了函数,决定考察大家的基本功。
给你两个数a和b,请用函数来实现交换这两个数,使得a的值为b,b的值为a。

本题必须用函数来完成。

不要在函数中先输出b,再输出a。保证a的值是b,b的值是a。请不要水过。

输入

输入多组数据。
每组数据一行,为两个数a和b。(a和b在int范围内)

输出

输出进行交换后a和b的值。

输入样例

1 2

输出样例

2 1

Hint

函数声明的方法:

方法1

int fuc(int);
int main()
{
}
int fuc(int a)
{
}

方法2

int fuc(int a)
{
}
int main()
{
}

关于函数的值传递和引用传递

值传递

值传递是将数值传递给一个函数,但是函数中得到的数值只是原数值的一个副本。函数中对它进行操作,不会改变main函数中传递进来的那个参数的实际值。

void fuc(int m,int n)
{
m++;n++;
cout<<m<<" "<<n<<endl;
}
int main()
{
int a,b;
cin>>a>>b;
fuc(a,b);
cout<<a<<" "<<b<<endl;
}
如果输入2 3,输出第一行为3 4,第二行是2 3。第一行的3 4,是在函数中进行运算的结果。而第二行的2 3,是原来a,b的值,说明调用fuc函数进行值传递时,没有改变原有a和b的值。

引用传递

引用传递是将数值传递给一个函数,函数中对数值进行操作会改变原来的值。

void fuc(int &m,int &n)
{
m++;n++;
cout<<m<<" "<<n<<endl;
}
int main()
{
int a,b;
cin>>a>>b;
fuc(a,b);
cout<<a<<" "<<b<<endl;
}
如果输入2 3,就会输出两行3 4。这说明在函数中a,b原来的值就已经改变了。

相关推荐