给定两个整型变量的值,将两个值的内容进行交换(不需要中间变量、有中间变量和指针情况)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42433334/article/details/102761691

给定两个整型变量的值,将两个值的内容进行交换

1、在不增加中间变量的情况
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 5;
	int b = 6;
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a=%d,b=%d\n", a, b);
	system("pause");
	return 0;
}

输出结果如下:
在这里插入图片描述

2、无中间变量(按位与操作)
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 5;
	int b = 6;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a=%d,b=%d\n", a, b);
	system("pause");
	return 0;
}

输出结果为:
在这里插入图片描述

3、有中间变量的两数值交换
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 5;
	int b = 6;
	a = a + b;
	b = a - b;
	a = a - b;
	//或者下面这种方式
	/*a = a ^ b;
	b = a ^ b;
	a = a ^ b;*/
	printf("a=%d,b=%d\n", a, b);
	system("pause");
	return 0;
}

输出结果为:
在这里插入图片描述

4、用指针方式交换两数值
#include<stdio.h>
#include<stdlib.h>
void swap(int* x, int* y)
{
	int temp = *x;
	*x = *y;
	*y = temp;
}
int main()
{
	int a = 30;
	int b = 20;
	swap(&a, &b);
	printf("a=%d,b=%d\n", a, b);
	system("pause");
	return 0;
}

输出结果为:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42433334/article/details/102761691