7-10 交换两个变量的值,不使用其他变量

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;
}

猜你喜欢

转载自blog.csdn.net/weixin_55372431/article/details/115147145