给定两个整形变量的值,将两个值的内容进行交换,如果不允许创建临时变量,又该如何交换两个数的内容呢?

首先我们来看给定两个整形变量的值,将两个值的内容进行交换。

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a,b,empty;
    printf("请输入两个整数a,b: ");
scanf("%d %d",&a,&b);
empty=a;
a=b;
b=empty;
printf("a=%d,b=%d",a,b);
system("pause");
return 0;
}

在这个程序中,我们定义了一个临时变量empty,让我们可以将值临时存放在empty中,进一步方便我们交换两个值内容。但如果不允许创建临时变量呢?
首先我们要做的是整理思路,既然无法创建临时变量,那么我们就无法利用简单的赋值来进行交换。如果说我们给出a,b两个整数,首先我们把a+b的值赋给a,为了达到a,b值交换的目的,也就是要使得现在b的值为a,前面我们已经将a+b的值赋给了a,所以说现在b=a-b,等号右边的a现在其实等于a+b(由前面的赋值实现),同样的a=a-b,等号右边a的值并没有发生变化,即还是a+b(同样由前面的赋值实现),但等号右边b的值已经变为了a最初的值,由此我们实现了不创建临时变量,实现两个数内容的交换!程序如下

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
    printf("请输入两个整数a,b: ");
scanf("%d %d",&a,&b);
    a=a+b;
b=a-b;
    a=a-b;
printf("a=%d,b=%d",a,b);
system("pause");
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44781107/article/details/88694449