【c语言】   交换两个整形变量的值(要求不创建临时变量)

如何不创建临时变量,来交换两个整形变量的值

  • 异或运算
#include<stdio.h>

int main()
{ int num1=12,num2=24;
    printf("交换前的变量值");
    printf("%d,%d",num1,num2);
      num1=num1^num2;
      num2=num1^num2;
      num1=num1^num2;//异或
 printf("\n交换后的变量值");
 printf("%d,%d",num1,num2);
  return 0;
}
  • 加减运算,乘除运算
#include<stdio.h>

int main()
{ int num1=12,num2=24;
   printf("交换前的变量值");
   printf("%d,%d",num1,num2);
     num1=num1+num2; num2=num1-num2;num1=num1-num2;//加减
    // num1=num1*num2; num2=num1/num2; num1=num1/num2;//乘除
   printf("\n交换后的变量值");
   printf("%d,%d",num1,num2);
  return 0;
}
时间: 2024-11-05 11:35:02

【c语言】   交换两个整形变量的值(要求不创建临时变量)的相关文章

不使用临时变量 依次交换两个已知数组的值

刚开始编写中间使用了一个临时数组!!浪费空间!后面优化到只使用一个临时变量!最后到不使用临时变量! #include<stdio.h> int main() { int arr1[] = { 1, 2, 3 }; int arr2[] = { 4, 5, 6 }; int i = 0; int sz = sizeof arr1 / sizeof arr1[0]; for (i = 0; i < sz; i++) { arr1[i] = arr1[i] ^ arr2[i]; arr2[i]

?Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1.2语言快速入门v2.0. [示例7-11]以下的代码就为外部参数toString.withJoiner设置了默认的参数"Swift"和"---".代码如下: import Foundation func join(string s1: String, toString

交换两个整形变量的数值

#include<stdio.h> void swap(int *p3,int *p4)//定义swap函数,定义两个指针参数 { int t;// 定义一个整形t来做数据交换的中介 t=*p3; *p3=*p4; *p4=t;//3步交换 } main() { int a,b;//定义两个整形变量a,b int *p1,*p2;//定义两个指针变量p1,p2 p1=&a;//指针p1指向a p2=&b;//指针p2指向b printf("输入a,b的值:"

C语言中不允许创建临时变量,交换两个数的内容

在C语言中可以通过建立临时变量来实现两个变量的交换,当不允许建立临时变量时,应该怎样实现两变量的交换呢? 假设有两个变量num1和num2:下面通过两种方法进行分析. 方法一:利用加减法.具体算法分析如下: 由于num1+num2-num1=num2; num1+num2-num2=num1; 则将num1+num2赋给num1:num1-num2赋给num2:num1-num2赋给num1,这样就可以实现num1和num2两个数内容的交换.通过相同的思想,我们也可以将加减运算改为乘除运算,但此

交换两个整形变量

#include<stdio.h> #include<conio.h> int main() { void swap(int *a,int *b);//声明swap函数 int *p1,*p2;//定义两个整形指针 int a,b;//定义两个整形变量 p1=&a; p2=&b;//指向a,b地址 scanf("%d,%d",&a,&b);//输入a,b的值 swap(p1,p2) ;//调用函数 getch(); } void

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

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

c语言-交换两个整数

使用c来写一个函数来实现交换两个整数. 第一种 一般的方法,引用中间变量,方便快捷. 1 void swap(int *a, int *b) 2 { 3 int tmp = *a; 4 *a = *b; 5 *b = tmp; 6 } 第二种 void swap(int *a, int *b) { int tmp = *a + *b; *b = tmp - *b; *a = tmp - *b; } tmp虽然可能会溢出,但是依然能够达到交换的效果. 上面的都是引用了中间变量,再看看不使用中间变量

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

使用临时变量非常简单 #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("

不借助第三个变量交换两个数值类型变量的值

原文地址:http://blog.csdn.net/web_hwg/article/details/75045689 方法一 最简单的方法是用一个临时变量 var a = 10, b = 20; var temp = a; a = b; b = temp; 方法二 让其中一个变量变成一个与a和b都有关系的值 a = a + b; b = a - b; a = a - b; 或者 a = a - b; b = a + b; a = b - a;