【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)

原创 2016年05月30日 17:11:55

     给定两个整型变量的值,将两个值的内容进行交换,现在我介绍几种不同的实现方法:


法1:在主函数里实现,这样操作这两个值时并未重新开辟空间,直接交换可以达到目的。


#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a = 10;
    int b = 20;
    
    int tmp = a;
    a = b;
    b = tmp;
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}


法2:考虑到重新写一个函数时,整型变量会开辟空间并将原来的值copy过来,而临时变量的周期我们是知道的。所以,传值不可能达到目的,只有传指针。(更加贴近于计算机的内部原理)


#include<stdio.h>
#include<stdlib.h>

void swap(int *pa,int *pb)
{
    int tmp = *pa;
    *pa = *pb;
    *pb = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(&a, &b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}

   

法3:针对法2,我们想到引用。


#include<stdio.h>
#include<stdlib.h>

void swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}

int main()
{
    int a = 10;
    int b = 20;
    swap(a, b);
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    system("pause");
    return 0;
}


编写一个函数,用于交换两个变量的值

C语言(地址传递): void Swap(int *a,int *b) { int temp; int temp=*a; int *a=*b; int *b=temp; }j...
  • lluozh2015
  • lluozh2015
  • 2015年10月13日 12:58
  • 1755

C语言之交换两个整型变量的值(四种方法)

C语言中有一道题目是交换两个整型变量的值,这是一道非常简单的题目,那么一共有几种方法呢?以下是我整理的四种方法,是在MAC系统x-code环境下编译并运行成功的,以下为截图: 方法一:通过引入第三方...
  • yanda607
  • yanda607
  • 2015年04月23日 01:39
  • 2091

C语言之交换两个整型变量的值(四种方法)

C语言中有一道题目是交换两个整型变量的值,这是一道非常简单的题目,那么一共有几种方法呢?以下是我整理的四种方法,是在MAC系统x-code环境下编译并运行成功的,以下为截图: 方法一:通过引入第三方...
  • yanda607
  • yanda607
  • 2015年04月23日 01:39
  • 2091

给定两个整形变量的值,将两个值的内容进行交换

对于给定的两个整形变量的值,将两个值的内容进行交换的问题,从两个方面设计解决方案,下面为具体的算法分析及程序。算法一:     先建立两个整形变量,并进行初始化。同时创建一个临时变量,通过这个自定义变...
  • ttyue_123
  • ttyue_123
  • 2016年08月09日 21:40
  • 499

两个变量的值交换的多种方法

在我的博客“函数参数的传递”(博客地址:http://blog.csdn.net/wxbmelisky/article/details/50833787)一文中谈到过将两个变量的值进行交换的 swa...
  • wxbmelisky
  • wxbmelisky
  • 2016年09月01日 20:48
  • 2104

JAVA和C++ 交换两个变量的值的函数 区别

在程序开发的过程,要交换两个变量的内容,是一种比较常见的事情。在排序算法中,就有一种就叫做“交换排序法”。在所有的排序算法,交换要排序的集合中的两个元素,几乎是必须的过程。在Java中交换两个元素的内...
  • u010292827
  • u010292827
  • 2015年07月30日 11:24
  • 1604

一道面试题——不用中间变量交换两个整型变量的值

           分类: C/C++     已经进入九月份了,马上又要进入新一轮的校园招聘了,想想自己也已经毕业一年多了,依稀还记得当年面试笔试时遇到的一些面试题,...
  • yafei888520
  • yafei888520
  • 2014年09月28日 10:27
  • 414

C语言小程序--交换两个变量的值

看到这个题目首先我们可以想到借助一个第三变量来实现 例如:a=10,b=20  我们想要交换a与b的值,可以借助一个第三变量temp,把a的值附给temp,把b的值给a,再把temp的值给b,就完成了...
  • her__0_0
  • her__0_0
  • 2016年03月16日 20:58
  • 5932

C语言交换两个变量数值的几种方法

因为经常见到这类题目,就自己总结了以下几种办法 1. 创建中间变量 这是最快也是最简单的办法,例如:#includeint main() { int a=10; int b...
  • ljx_5489464
  • ljx_5489464
  • 2015年11月25日 21:11
  • 13309

C语言交换两个整数的值

在学习用C语言交换两个整数的值得时候,有趣的发现了三种不同思路的解法。 整理大概如下: #include void swap1(int *a, int *b); void swap2(int *a,...
  • qq_35524916
  • qq_35524916
  • 2016年09月29日 23:05
  • 1987
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)
举报原因:
原因补充:

(最多只允许输入30个字)