swap() 交换两个数

#include <stdio.h>

void swap(int *x, int *y)//传入指针
{
	int tmp;
	tmp = *x;
	*x = *y;
	*y = tmp;
}

int main()
{
	int a = 3;
	int b = 5;
	printf("a = %d, b = %d\n", a, b);
	swap(&a, &b);
	printf("a = %d, b = %d\n", a, b);
	return 0;
}

时间: 2024-07-30 00:24:12

swap() 交换两个数的相关文章

C++ 全排序算法中交换两个数

问题描述 C++ 全排序算法中交换两个数 #include<iostream> using namespace std; void swap(int& a, int& b){ a = a + b; b = a - b; a = a - b; } void swap1(int&a, int& b){ int temp = b; b = a; a = temp; } void perm(int a[], int i, int n){ if(i == n - 1){

Java中不使用中间变量交换两个数

在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋.在本文介绍了两个方法(其实原理都是一个) .其基本原理就是数的中和. 也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中.然后再通过同 样的运算符将a或b中和掉.这样实际上是利用了a或 b本身作为了中间变量. 先看第一个算法. static class Num { int a; int b; } public static void swap1(Num num) { num.a = nu

不使用中间变量交换两个数(Java版)

本文为原创,如需转载,请注明作者和出处,谢谢!     在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋.在本文介绍了两个方法(其实原理都是一个).其基本原理就是数的中和.也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中.然后再通过同样的运算符将a或b中和掉.这样实际上是利用了a或b本身作为了中间变量.     先看第一个算法. static   class  Num {      int  a;      int  b; } pub

不使用中间变量交换两个数

/*不交换中间变量交换两个数*/ #include <iostream> using namespace std; void Fun(int&x,int&y) { x=x+y; y=x-y; x=x-y; } int main() { int a=3,b=4; cout<<"交换前"<<endl<<"a="<<a<<"\t"<<"b=&q

不用中间变量交换两个数 swap(a,b);

#include <iostream> using namespace std; int main () { int a = 3; int b = 5; cout<<"a="<<a<<",b="<<b<<endl; a = a+b; ///a=7 b = a-b; ///b=3; a = a-b; ///a=5 cout<<"a="<<a<<

异或交换两个数

 交换a和b: #include <iostream> using namespace std; int main() {     int a,b;     while(cin>>a>>b)     {         a=a^b;         b=b^a;         a=a^b;         cout<<a<<" "<<b<<endl;     }     return 0; }

交换问题-两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序?

问题描述 两个数交换,但不加入第三个数,对于这样的做法具体栈中是怎么一个顺序? 两个数交换,但不加入第三个数,对于 int num1 =1; int num2 =2; System.out.println("交换前---num1="+num1+" num2="+num2); num2 = num1 +(num1 = num2)*0; System.out.println("交换后---num1="+num1+" num2="+

C#和C/C++指针实现swap交换

当我们要编程的时候要实现两个数的简单交换,要求必须调用子函数来交换,咋一看挺简单,就直接交换一下或许就能实现,但真正实现起来或许我们会碰到一定的问题,当运行结果的时候,我们有可能会惊讶的发现怎么两个数还没有交换呢,其实这是我们对函数参数是值类型还是应用类型还不够了解,发生错误就是因为我们使用的是值传递,接下来我通过两种语言来实现这一方法,首先是c语言实现 C代码实现: #include <stdio.h> void swap(int* a,int* b) { int p; p=*a; *a=*

两个数的最大公约数

一,两个数的最大公约数: 1.欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数.其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数 假设d 是(b,a mod b)的公约数,则 d | b , d |r ,但是a = kb +r 因此d也是(