不创建临时变量,交换两整数的值

(1)加减法:a=a+b;b=a-b;a=a-b;

(2)乘除法:a=a*b;b=a/b;a=a/b;

(3)异或运算:a=a^b;b=a^b;a=a^b;(遇到a可翻译b,遇到b可翻译a)

^异或(按位异或):相同出0,相异出1.

如:2    0000 0000 0000 0010

3    0000 0000 0000  0011

2^3      0000 0000 0000 0001 =1

2^3^2  0000 0000 0000 0011=3

--加减运算
#include <stdio.h>
#include <stdlib.h>
int main()
{
 int a = 0;
 int b = 0;
 scanf("%d", &a);
 scanf("%d", &b);
 a = a +b;
 b = a-b;
 a = a-b;
 printf("%d\n",a);
 printf("%d\n", b);
 system("pause");
 return 0;
}
--乘除运算
#include <stdio.h>
#include <stdlib.h>
int main()
{
 int a = 0;
 int b = 0;
 scanf("%d", &a);
 scanf("%d", &b);
 a = a * b;
 b = a /b;
 a = a / b;
 printf("%d\n", a);
 printf("%d\n", b);
 system("pause");
 return 0;
}
--异或运算
#include <stdio.h>
#include <stdlib.h>
int main()
{
 int a = 0;
 int b = 0;
 scanf("%d", &a);
 scanf("%d", &b);
 a = a^b;
 b = a ^ b;
 a = a ^ b;
 printf("%d\n", a);
 printf("%d\n", b);
 system("pause");
 return 0;
}

 
时间: 2024-10-17 14:06:39

不创建临时变量,交换两整数的值的相关文章

不允许创建临时变量交换两个变量的内容

在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量.如果在没有临时变量的情况下,该如何做呢? 方法一:C语言提供的异或运算就可以实现这样的操作.异或运算符"^"也称"XOR"运算符,它的规则是:若参加运算的两个二进位同号,则结果为0(假):异号为1(真). 即: 0 ^ 0 = 0,            0 ^ 1 = 1,            1 ^ 0 = 1,            1 ^ 1 = 0.       例如:a=5, b=9, 要想

交换两个数的值以及不使用临时变量交换两个数的值

使用临时变量非常简单 #include<stdio.h> int main() { int a = 1, b = 2, c = 0; printf("a="); scanf("%d", &a); printf("b="); scanf("%d", &b); c = a; a = b; b = c; printf("a=%d,b=%d\n", a, b); system("

不使用临时变量交换两个变量值

题目:不使用临时变量交换两个变量值 分析:使用加.减.乘.亦或(aba==b),四种方法分别如下: //方法一:利用加法 int Swap3(int *x, int *y) { *x = *x + *y;//*x是二者和 *y = *x - *y;//*y是*x *x = *x - *y;//*x是*y } //方法二:利用减法 int Swap1(int *x, int *y) { *x = *x - *y;//*x是二者差值 *y = *x + *y;//*x是*y *x = *y - *x

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

不用临时变量交换两个变量的值——函数对象

// 不使用中间临时变量,交换两对象的值 ,废话少说,直接上代码 // Virtual.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <memory> #include <algorithm> #include <set> #include <vector> #include <map> #include <stri

设置一个临时变量交换两个变量的值

当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换. C语言代码如下: # include <stdio.h> int main() {    int a, b;    int *p;    //临时变量        scanf("%d %d", &a, &b);        p = a;    a = b;    b = p;        printf("交换后的值为:");    printf("%d 

Python、C++中编写函数以及不使用临时变量交换两变量值的比较

在C++中,交换两变量的值一般第一反应都会是如下的代码: { temp=a; a=b; b=temp } 但是题目要求不允许使用临时变量temp呢?可能就需要想一会了.但也有解决办法: { b=a+b; a=b-a; b=b-a; } 这种做法在a和b数值较小的情况下是对的,但是a+b如果很大则会溢出,所以也不是最优的解法.最好的方法是使用异或: { a ^= b b ^=a a ^=b } 在Python中这个问题就太弱智啦! a,b=b,a 直接一行搞定! 如果题目要求编写一个函数来交换两变

JAVA不用临时变量交换两个变量的值

交换两个变量的值,不适用临时变量 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6 } 7 } 交换两变量的值 加减实现交换 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6

JavaScript不用临时变量交换两个变量的值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变

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

1.利用两数之和减去另一个数的方式: NSInteger a=3,b=5; a=a+b; b=a-b; a=a-b; NSLog(@"a=%ld,b=%ld",a,b); p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } 打印:a=5,b=3 2.利用位运算 ^ (异或): 异或的特点是:一个数据a与另一个数据b做异或运算之后,变成了另外一个数c,再读取这个数