7-10 交换两个变量的值,不使用其他变量
键盘输入两个整数(用空格作为分隔符),请编写一个程序,将两个数据的值互换,不使用其他变量,并输出交换后的值
输入样例:
用空格作为分隔符
输出样例:
输出数据后换行
输入样例:
在这里给出一组输入。例如:
3 4
输出样例:
在这里给出相应的输出。例如:
4,3
源代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void MySwap(int* pa, int* pb)
{
//交换方法一:
//*pa = *pa + *pb;
//*pb = *pa - *pb;
//*pa = *pa - *pb;
//交换方法二:
*pa = *pa ^ *pb;
*pb = *pa ^ *pb;
*pa = *pa ^ *pb;
//函数用来实现功能,尽量不要在函数内部打印
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
//法一:传指针
//int* pa = &a;
//int* pb = &b;
//MySwap(pa,pb)
//printf("%d,%d", *pa, *pb);
//法二:直接传地址
MySwap(&a, &b);
printf("%d,%d", a, b);
return 0;
}
运行结果:
写在最后:对于这个题用上面的代码完全就是小题大做,写上面的代码只是想看看我的“功力”还在不在,事实证明,还在。这个题用下面这个代码就够了。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d,%d", a, b);
return 0;
}