交换两个数的C语言程序

原创 2016年06月02日 10:44:02

今天是第一次接触C语言,之前有一点C++的基础,所以学习起来还挺顺手的。下来分享一下写的一个关于交换两个数的C语言代码。可能这些还存在很大的问题,希望大家可以指正。

方法一:允许创建第三个变量

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

方法二:不创建新的变量,利用两个变量之间的关系,例如异或,加减乘除,但考虑到加减乘除预算可能会出现溢出情况,故采用异或是最保险的。

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

但综合这两种方法,方法一中创建了一个临时变量,这样的做法让程序简单易读,并且执行起来速度也快一点;方法二虽然看起来很完美 ,但实际操作起来并不推崇这种写法,会加大程序运行时间。


本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1702318

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

问题描述:程序中有两个数a,b,其中a=4,b=5,现在希望交换两个数的值,使得a=5,b=4.在这里我总结了一下目前我已经掌握的C语言中交换两个数的方法,主要如下几种,下面我将分别来进行介绍。方法1...
  • yi_ming_he
  • yi_ming_he
  • 2017年05月06日 11:35
  • 15680

C语言实现交换两个数

C语言中要实现交换两个变量的值可以有很多种方法,下面是我收集的方法:方法一:使用临时变量void exchange(int *a, int *b){ int temp = 0; temp ...
  • flyingstarwb
  • flyingstarwb
  • 2009年06月24日 22:18
  • 14238

【C语言学】写一个俩个数交换的宏定义

第一种: //直接法 #define SWAP(a, b) { a = a ^ b, b = a ^ b, a = a ^ b } 可如果是浮点运算怎么办? 第二种: //加入类型声...
  • KISS_BEN
  • KISS_BEN
  • 2012年11月04日 23:14
  • 4251

关于C语言中交换两个数的代码探讨

#include // There is no need to allocate the third position for temp void reverse_array(int a[], i...
  • dejingqianshen
  • dejingqianshen
  • 2016年09月09日 10:45
  • 794

[c]不用第三个数,去交换二个数的位置。

int a = 10; int b = 20; 第一种方法: a = a + b; b = a - b; a = a - b; 第二种方法: a = a ^ b; b = a ^ b; a =...
  • s133315202
  • s133315202
  • 2015年08月13日 15:06
  • 840

如何实现两个数交换的交换以及宏定义的编写

【语句实现方法】 方法1:不使用中间变量 ●利用位运算符  a = a^b; b = a^b; a = a^b;  →    a^= b^ = a^ = b;(不用考虑越界问题) 【解释】: ...
  • u012512762
  • u012512762
  • 2014年10月16日 12:18
  • 2023

C语言中如何用指针交换两个数的大小

如何用传址的方式交换两个数的大小 首先先看第一个程序,用函数的调用来解决看似正确实则运行出来的结果是错误的 #define _CRT_SECURE_NO_WARNINGS 1 #include #in...
  • persistence_s
  • persistence_s
  • 2016年10月01日 11:04
  • 1655

C语言中—— 三种方法实现两个数值交换

#include int main(int argc, const char * argv[]) {     int a,b;     printf("请输入...
  • u012189584
  • u012189584
  • 2014年01月23日 12:38
  • 2521

C语言——经典的两个数互换的程序——更好的理解指针!!!

# include int main(void) { void huhuan(int ,int); void huhuan_1(int *,int *); void huhua...
  • jingzi123456789
  • jingzi123456789
  • 2016年05月11日 15:20
  • 4788

解惑——用指针交换两个数字时所犯的错误

以前经常刚开始写c的时候经常犯错,想想也很有意思,最近正好趁着这个时光 做了一下总结。c中指针的使用时非常重要的,但是无论是什么语言,都要首先树立内存空间这一概念,这样的话会很容易找到不同语言之间的相...
  • dd864140130
  • dd864140130
  • 2014年11月12日 01:16
  • 1140
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交换两个数的C语言程序
举报原因:
原因补充:

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