精华内容
下载资源
问答
  • C语言交换a和b

    千次阅读 2013-10-30 14:53:41
    交换a和b值的三种方法 ^为位运算符,表示按位异或 a=a^b; b=a^b; a=a^b;     a=a+b; b=a-b; a=a-b;   使用中间值 t=a; a=b; b=t; 例子:输入3个数a,b,c,要求按由小到大的顺序输出 #include   ...

    交换ab值的三种方法

    ^为位运算符,表示按位异或

    a=a^b;

    b=a^b;

    a=a^b;

     

     

    a=a+b;

    b=a-b;

    a=a-b;

     

    使用中间值

    t=a;

    a=b;

    b=t;

    例子:输入3个数a,b,c,要求按由小到大的顺序输出

    #include<stdio.h>

     

    int main (void)

    {

    int a,b,c,temp;

    scanf("%d%d%d",&a,&b,&c);

    if(a>b)

    {

    temp=a;

    a=b;

    b=temp;

    }

    if(a>c)

    {

    temp=a;

    a=c;

    c=temp;

    }

    if(b>c)

    {

    temp=b;

    b=c;

    c=temp;

    }

    printf("%d %d %d\n",a,b,c);

    return 0;

    }

    展开全文
  • C语言交换ab值的几种写法

    万次阅读 2019-07-19 15:30:26
    定义中间变量c,吧a值赋给c,把b值赋给a,把c值赋给b,完成交换 #include <stdio.h> int main() { int a = 2; int b = 5; int c = a; printf("a=%d\n", a = b); { printf("b=%d\n", b = c); ...

    方法一
    定义中间变量c,吧a值赋给c,把b值赋给a,把c值赋给b,完成交换

    #include <stdio.h>
    int main()
    {
    	int a = 2;
    	int b = 5;
    	int c = a;
    	printf("a=%d\n", a = b);
    	{
    		printf("b=%d\n", b = c);
    	}
    	return 0;
    }
    

    方法二
    把a+b赋给a,然后用a-b(等于a原来的值)赋给b,再用a-b(等于b原来的值)赋给a

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int a = 2;
    	int b = 5;
    	a = a + b;
    	b = a - b;
    	a = a - b;
    	printf("a=%d,b=%d", a, b);
    	return 0;
    }
    

    注意不可以写成

    #include<stdio.h>
    #include<stdlib.h>
    void Swap(int x,int y)
    {
    	int tmp = x;
    	x = y;
    	y = tmp;
    }
    
    int main()
    {
    	int a = 10;
    	int b = 20;
    	int tmp = 0;
    	printf("%d,%d\n",a,b);
    	Swap(a,b);
        printf("%d,%d\n",a,b);
    	return 0;
    }
    
    

    因为C语言中(按值传递)形参的改变 不影响实参的值

    方法三
    用异或

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int a = 6;//0000 0110
    	int b = 4;//0000 0100
    
    	a = a ^ b;//a = 0000 0010     2
    	b = a ^ b;//0000 0110    b = 6
    	a = a ^ b;//4           a = 4;
    
    	return 0;
    }
    
    

    方法四:
    用指针

    #define _CRT_SECURE_NO_WARNINGS 1
    void Swap(int *p, int *q)
    {
    	int tmp = *p;\\正确写法
    	*p = *q;
    	*q = tmp;
    }
    
    /*void Swap2(int *p, int *q)   错误写法
    {
    	int *tmp = p;
    	p = q;
    	q = tmp;
    }*/
    int main()
    {
    	int a = 10;
    	int b = 20;
    	printf("%d,%d\n", a, b);
    	Swap(&a, &b);
    	printf("%d,%d\n", a, b);
    	return 0;
    }
    
    

    加油鸭~

    展开全文
  • #includevoid exchange0(int *a,int *b)//通过指针交换两者的{int c;c=*a;*a=*b;*b=c;}void exchange1(int *a,int *b)//没有交换两者的,只是交换了地址{int *c;c=a;a=b;b=c;}void exchange2(int &a,int &...

    #include

    void exchange0(int *a,int *b)//通过指针交换两者的值

    {

    int c;

    c=*a;*a=*b;*b=c;

    }

    void exchange1(int *a,int *b)//没有交换两者的值,只是交换了地址

    {

    int *c;

    c=a;a=b;b=c;

    }

    void exchange2(int &a,int &b)//通过引用交换两个的值

    {

    int c;

    c=a;a=b;b=c;

    }

    void exchange3(int &a,int &b)//通过异或交换两者的值

    {

    a=a^b;

    b=a^b;

    a=a^b;

    }

    void exchange4(int &a,int &b)//通过加减交换两者的值

    {

    a=a+b;

    b=a-b;

    a=a-b;

    }

    int main()

    {

    int a=3,b=4;

    exchange0(&a,&b);

    printf("a=%d\tb=%d\n",a ,b);

    exchange1(&a,&b);

    printf("a=%d\tb=%d\n",a ,b);

    exchange2(a,b);

    printf("a=%d\tb=%d\n",a ,b);

    exchange3(a,b);

    printf("a=%d\tb=%d\n",a ,b);

    exchange4(a,b);

    printf("a=%d\tb=%d\n",a ,b);

    return 0;

    }

    展开全文
  • C语言交换a,b

    2020-07-24 09:43:25
    功能:利用函数模块化交换a,b*/ #include<stdio.h> void change();//函数声明 int m = 0, n = 0;//定义全局变量 void change() { int temp; temp = m; m = n; n = temp; } int main() { //int m=0, ...
    /*
    革启博客,程序袁欢,袁欢的博客,袁欢博客,袁欢
    版本:vs2019社区版
    功能:利用函数模块化交换a,b的值*/
    #include<stdio.h>
    void change();//函数声明
    int m = 0, n = 0;//定义全局变量
    void change()
    {
    	int temp;
    	temp = m;
    	m = n;
    	n = temp;
    
    }
    int main()
    {
    	//int m=0, n=0;
    	printf("请输入a,b的值:\n");
    	scanf_s("%d%d", &m, &n);
    	printf("交换前a,b的值:\n");
    	printf("a=%d b=%d\n", m, n);
    	change();
    	printf("交换后a,b的值:\n");
    	printf("a=%d b=%d", m, n);
    	return 0;
    }
    

    由于定义了全局变量,因此不需要函数调用时将值传给他,而是直接在函数中对全局变量进行赋值操作。

    展开全文
  • 在学习程序语言进行程序设计的时候,交换两个变量的是经常要使用的。通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; ...
  • c语言swap(a,b)值交换的4种实现方法,这么好的东西,尽管简单,但值得发表,以此共享。
  • C语言交换 ab的 3种方法

    万次阅读 2018-10-05 22:02:57
    第一种方法:给定两个整形变量的,创建两个临时变量将两个的内容进行交换。 { int a = 2; int b = 3; int c = 0; printf("原来的\na=%d b=%d\n", a, b); c = a; a = b; b = c; printf("...
  • 输入a b 交换数值并输出(c语言)

    千次阅读 2021-01-13 20:43:57
    printf(“请输入a b\n”) ;//提示输入 scanf("%d%d",&a,&b);//读取ab c=a+b;//不同于换 如2+3=5 也就是a+b=5 a=c-a;//a=5-a;a=3 b=c-b;//b=5-b;b=2 printf(“b=%d\na=%d”,a,b);//换行输出 ret
  • 要求不能使用第三变量来达到交换两个变量呢? 方法一: void main() { int a,b; printf(&amp;quot;请输入两个变量的:&...a,&...b);... a=a+b;... b=a-b;... a=a-b;...交换后为:a=%d,b=%d
  • 平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对位有理解的人,可能会想到第三种方法,这个方法很妙。但,真正促使我写这篇文章...
  • C语言中,交换ab两个变量的的三种实现方式 题目: 有两个整型变量分别为a,b,其中a=3,b=5,要求将a,b内的进行互换使得a=5,b=3。 方法一: 该方法是创建一个新的整型变量,将这个新创建的变量作为变量a,...
  • C语言 | 交换ab值较好的方法?

    千次阅读 多人点赞 2020-10-15 08:00:00
    交换abC语言的学习中是很常见的问题。最常用的方法就是引入一个中间变量当做中间介质来交换ab。代码如下:voidchange_ab(int*a,int*b) { ...
  • 第二个C语言程序ab值交换

    千次阅读 2018-08-25 11:33:21
    /************************************************************************ *这是我接触到的第二个程序 ...*文件名:a exchange b *使用软件:vs2017 *********************************...
  • 原文地址:c语言swap(a,b)值交换的4种实现方法作者:向在午时      平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对位有理解...
  • 1.借助临时变量 #include int main() { int a=0; int b=0; printf("please enter (a,b)");... scanf("%d%d",&a,&b);... printf("before:a=%d b=%d \n",a,b);... a=a+b;...//b=a+b-b=a a=a-b;//a=a+b-a=b pr
  • int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}qsort(s3,f,sizeof(int),cmp);c语言排序函数!!!!#define swap(a,b) (a+=b,b=a-b,a-=b)swap(x,y);c语言交换值函数!!!...
  • C语言中利用Swap函数交换变量ab

    千次阅读 2020-10-21 17:43:00
    C语言中利用Swap函数交换变量ab 常见错误写法 error1 void Sawp_error1(int a,int b) { int tmp; tmp=a; a=b; b=tmp; } int main() { int a=10; int b=20; Sawp_error1(a,b); printf("%d %d\n",a,b); ...
  • 7-4 交换a和b

    2020-09-28 11:04:07
    交换a和b 交换变量a,b,如输入a的为1,b为5,则输出a的为5,b为1。 输入格式: 输入两个整数,之间用一个空格间隔。 输出格式: 在一行中按照“a=x,b=y”的格式输出,其中xy均是原样输出,不加...
  • a = a+b --&gt;1+2=3 b = a-b—&gt;3-2=1=b a = a-b----&gt;3-1=2=a 方法二: a = a^b —&gt;001 010 011&gt;3 b =b^a —&gt;010 011 001&gt;1 a = a^b—&gt;011 001 010&gt;2 ...
  • 交换a,b值的三种方法

    万次阅读 2018-05-21 21:54:14
    给定两个数a=10,b=20交换ab的三种方法 1、首先第一种是我们最容易想到的,定义一个空tmp,用其交换,在三个数按从小到大(或从大到小)排序输出时曾用到过2、第二种方法,用加减法来交换a,b,是比较好的方法3...
  • C语言交换两个数的

    万次阅读 2018-06-03 22:03:25
    C语言交换两个数的方法 方法一:利用中间变量 int a =10,b=20; int tmp; tmp = a; a = b; b = tmp; 方法二:利用迭代 int a = 10,b=20; a = a+b; b = a-b; a = a-b;
  • 在开始你使用这种方法int tmp; tmp = a; a = b; b = tmp; 后来你知道了模块化编程,你知道这样是不好的,于是你开始使用函数.void swap...随着c语言的学习,后来你发现下面代码也能完成两变量的值交换的任x = x +y;
  • 7-3 交换a和b (10分)

    千次阅读 2020-04-09 21:43:47
    交换变量ab,如输入a为1,b为5,则输出a为5,b为1。 输入格式: 输入两个整数,之间用一个空格间隔。 输出格式: 在一行中按照“a=x,b=y”的格式输出,其中xy均是原样输出,不加宽度控制。 ...
  • c语言swap(a,b)值交换的4种实现方…

    千次阅读 2013-07-26 18:10:39
    平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对位有理解的人,可能会想到第三种方法,这个方法很妙。但,真正促使我写这篇文章...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,260
精华内容 18,904
关键字:

交换a和b的值c语言

c语言 订阅