交换两个整型变量值的方法

方法一:

创建临时变量

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 1, b = 2;
	int temp = a;//创建临时变量temp
	a = b;
	b = temp;
	printf("a=%d,b=%d", a, b);
	system("pause");
	return 0;
}

方法二:

通过异或

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 1, b = 2;
	a = a^b;
	b = b^a;
	a = a^b;
	printf("a=%d,b=%d", a, b);
	system("pause");
	return 0;
}

方法三:

通过加减(或乘除)

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 1, b = 2;
	a = a + b;//a=a-b也可以
	b = a - b;
	a = a - b;
	printf("a=%d,b=%d", a, b);
	system("pause");
	return 0;
}

方法四:

利用指针交换两个变量的值

#include<stdio.h>
#include<stdlib.h>
void swap(int *p1, int *p2)
{
	char temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}
int main()
{
	int a = 1, b = 2;
	swap(&a, &b);
	printf("a=%d,b=%d", a, b);
	system("pause");
	return 0;
}
时间: 12-03

交换两个整型变量值的方法的相关文章

c语言实现交换两个数的值

C语言中要实现交换两个数的值,可以有很多种方法,具体如下所述. 不使用中间变量: 1 // 异或, a^=b^=a^=b; 2 a ^= b; 3 b ^= a; 4 a ^= b; 5 6 // 加减 7 a = a + b; 8 b = a - b; 9 a = a - b; 10 11 // 乘除 12 a = a * b; 13 b = a / b; 14 b = a/ b; 使用中间变量: 1 // 需临时空间 2 temp = a; 3 a = b; 4 b = temp; 正如你所

不占用任何额外空间的情况下交换两个数的值

题目 假如有x.y两个数,如何在不占用任何额外空间的情况下交换两个数的值? 思路 平时我们在交换两个数的值时,往往会用一个中间数temp来实现效果,现在需要不占用任何额外空间,自然就不能使用这种寻常的方法了:这里可以有两种方法来实现. 方法一 int x = 5; int y = 10; x = x + y; y = x - y; x = x - y; 先将两个数之和附给x,接着x-y自然就是原本x的值,这时候赋值给y,y就拿到了x原本的值.此时x依然是两个数之和,再进行x-y自然就是原本x的值

如何不使用第三个变量来交换两个数的值

最近在看<c++从入门到精通>自学c++,里面有一道课后题是如何做到不适用第三个变量来交换两个数的值,以下是我在网上查找到的资料,记录下并作为笔记. 题目:a=10,b=15,将a / b的值互换. 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下:      int a,b;      a=10; b=15;      int t;      t=a; a=b; b=t;      这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用

c语言函数实现交换两个数的值

代码: 1 #include <stdio.h> 2 3 void swap(int x,int y) 4 { 5 int temp; 6 7 temp = x; 8 x = y; 9 y = temp; 10 printf("In swap: x = %d,y = %d\n",x,y); 11 } 12 13 void swap_with_pt(int * x,int * y) 14 { 15 int temp; 16 17 temp = *x; 18 *x = *y;

交换两个数的值,不适用第三个变量

交换两个数的值,不适用第三个变量 一.源代码:SwapTwoNumber.java 1 package cn.com.zfc.help; 2 3 /** 4 * 不适用中间变量交换两个数 5 * 6 * @author zfc 7 * 8 */ 9 public class SwapTwoNumber { 10 public static void main(String[] args) { 11 12 /* 1.第一种交换方式,位运算:^(异或) */ 13 System.out.printl

交换两个整型变量的值

#include<stdio.h> #include<stdlib.h> int main() {     int a = 1; int b = 2; int tmp = a; a = b; b = tmp; printf("a = %d b = %d\n",a,b); system("pause"); return 0; } 上面是用创建中间变量的方法交换,下面是不创建中间变量的另一种方法:      a = a+b; b = a-b; a

用多种方法交换两个数的值

今天上了C语言课,老师讲了有关交换两个数的问题.课后,经过自己的思考和总结,我得出了以下几种方法.虽然这个问题的方法还有很多,但我目前只了解到了这五种方法,希望大家多提建议和意见.其他的方法待补充奥... 法一: 大家最容易想的方法,首先设一个临时变量,利用临时变量将两个数交换.下面是实现它的代码: #include<stdio.h> int main() {   int num1=5,num2=10,tmp=0;   printf("before:\n");   prin

常用算法之交换两个数的值

交换两个变量的值,古老的话题,下面把各种方法做个总结. 为了方便,先定义两个变量. int a = 1; int b = 2; 一 借助临时变量 1 交换变量值 int tmp; tmp = a; // tmp = 1 a = b; // a = 2 b = tmp; // b = 1 2 交换地址 int *p; p = &a; // tmp->1 a = &b; // a->2 b = p; // b ->1 二 不借助第三个变量 1 加减法 a = a + b //

通过异或位交换两个整型变量的一个不容易注意的细节

设变量 a = 1, b = 2, 我们要交换两个变量的值, 当用异或交换两个值的时候会有一个小问题 用位运算大概是这个样子的 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 void swap(int& a, int &b) { 6 a ^= b; 7 b ^= a; 8 a ^= b; 9 } 10 11 int main() { 12 int a = 2, b = 3; 13 cout << &qu