一道编程题2

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:43:41
A,B是二个整数,要求交换A,B的值,使A的值等于B的值,B的值等于A的值
附加条件:不能使用中间变量 。
要求:传给子函数二个数,整型的数,最后返回来的这二个数是交换数据以后的。
谢谢各位了!

子函数返回2个数?函数只能返回一个值的
具体做法是这样 把A B的地震传过去 然后交换地址
#include <stdio.h>

void swap(int &a,int &b){
a = a+b;
b = a-b;
a = a-b;
}

int main(){
int a,b;
scanf("%d",&a,&b);
swap(a,b);
printf("%d %d",a,b);
return 0;
}

不用中间变量也行啊

#include<stdio.h>
void fun(int *a,int *b);

void main()
{
int x,y;
scanf("%d%d",&x,&y);
fun(&x,&y);
printf("%d %d\n",x,y);
//getch();
}

void fun(int *a,int *b)
{
&a=&a+&b ;
&b=&a-&b ;
&a=&a-&b ;
}

getch();用了这句怎么编译不过了啊
error C2065: 'getch' : undeclared identifier
为什么啊

是getchar………………

void swap(int &a,int &b){
a = a+b;
b = a-b;
a = a-b;
}
果然牛 从来都没想过这样去实现
不过也从来都没有试过不能用中间变量的!!!

/*用位运算
*/

#include <stdio.h>
<