C语言中交换两个数值的方法

//方法1
    int  one = 1;
    int two = 2;
    int temp = 0;
    temp = one;
    one = two;
    two = temp;
    printf("one = %d\n", one);
    printf("two = %d\n", two);
    
        //方法2
    int a1 = 5;
    int a2 = 8;
    a1 = a2 - a1;
    a2 = a2 - a1;
    a1 = a1 + a2;
    printf("a1 = %d\n", a1);
    printf("a2 = %d\n", a2);
        //方法3
    
    int c = 10, d = 20;
    c = c ^ d;
    d = d ^ c;
    c = c ^ d;
    printf("c = %d\n", c);
    printf("d = %d\n", d);
 
        //方法4
    int e = 10, f = 20;
    int *g = &e, *h = &f;
    int tep = *g;
    *g = *h;
    *h = tep;
    printf("e = %d\n", e);
    printf("f = %d\n", f);

时间: 2024-10-16 18:09:22

C语言中交换两个数值的方法的相关文章

交换两个数值的方法,注意有【坑】,闲来无事,总结一下

交换两个数值的方法 题面: 设a,b两个整数值,交换两个a,b二者的值, 例如: 设 a=1, b=2, 交换后 a=2,b=1 这几种方法,网上也说过很多,但是都没注意这几种方法的[坑],不要只顾着新奇方法,毕竟[可靠性]很重要,这里稍微记录下 方法1 最简单的方法就是加一个中间量: int c=a; a=b; b=c; 方法2 使用异或运算 xor: a = a xor b; //a=3, b=2 b = a xor b; //a=3, b=1 a = a xor b; //a=2, b=1

C语言如何交换两变量值?5大方法告诉你!

写在前面: C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,也算是对这个问题的统一回复,我一共总结了5种方法(名字都是我自己取的,不当之处还请批评指正),希望大家看完有所收获. 1.临时变量法 方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握. #include<stdio.h> int main(void) { int a=1,b=2,tmp; tm

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; 正如你所

R语言中最简单的向量赋值方法

R语言中最简单的向量赋值方法简介: 1. 生成等差数列的向量x x <- 1:10 #将x向量赋值为1 2 3 4 5 6 7 8 9 10 结果为 > x [1] 1 2 3 4 5 6 7 8 9 10 2. 将x的值全部修改成0 x[] <- 0 #非常简洁的赋值方法,建议使用 x[1:length(x)] <- 0 #不建议使用的赋值方法 结果为: > x[] <- 0 > x [1] 0 0 0 0 0 0 0 0 0 0 3.使用seq函数 x <

交换两个值的方法

交换两个值的方法 1.利用temp变量交换 temp=a; a=b; b=a; 2.加减法交换 b = a - b; a = a - b; b = a + b; 3.异或交换 a = a ^ b; b = a ^ b; a = a ^ b; 版权声明:本文为博主原创文章,未经博主允许不得转载.

C语言中有关两个数,值的交换

一.开讲感言 最近在系统的学习C语言,虽说以前在大学里学习过,但是人嘛,时间一久就会忘了.由于行业的原因,我学习了iOS,但是想学习iOS,C就是万万不能忘的.于是经过几天的时间,我终于有了一点小成就,就是有关在C里面的两个值的交换,这里或许只是一部分,希望还有知道方法的同事,不吝赐教.下面就不多说了,我们一起来看,怎么交换两个数的值,我这里面提供了三种方法. 第一种:第三方变量交换法 我们在C++编译器中设三个变量,并且给其中两个变量赋值,第三方变量初始化为0,下面我们来看看具体的代码情况.由

java实现原数组根据下标分隔成两个子数组并且在原数组中交换两个子数组的位置

此类实现:输出一行数组数据,根据输入的下标,以下标位置为结束,将原数组分割成两组子数组.并交换两个子数组的位置,保持子数组中的元素序号不变.如:原数组为7,9,8,5,3,2 以下标3为分割点,分割为子数组一:7,9,8,5.和子数组二:3,2.经过交换算法后的结果应为:3,2,7,9,8,5 有两种交换算法<1>前插法:将子数组3,2另存在一个临时数组中,将原数组7,9,8,5,3,2每一位向后移两个位置  再将子数组3,2插入到移动好元素位置的原数组中.<2>逆置法:将原数组7

Java小案例——交换两个数值的三种方法

要求: 互换两个数的值 方法一:借助第三方变量 /** * 借助第三方变量对两个值进行互换 * @author Administration * */ public class ExchangeValue { public static void main(String[] args) { int a = 10; int b = 15; System.out.println("a的值:"+a+",\tb的值:"+b); System.out.println(&quo

在排序的数组中交换两个元素

如题,在一串已经排序好的数中,交换了两个元素.例如: nums[] = {1,2,3,4,5,6,7,8,9,10} 交换两个元素(例如交换数字5和9)后: nums[] = {1,2,3,4,9,6,7,8,5,10} 问题是怎么在数组中找到这两个元素? 思路 假设交换的两个元素为x和y,且x < y.其他的数为Ni.那么问题可以表示为: nums[] = {N1 , N2 , N3 , Ni , x , Ni+2 , ... , y , ...,Nm } 交换x和y后 nums[] = {N