关于两个数值交换

一般在初学一门编程语言的时候就会接触到两个数值交换的问题,这一点在以后的编程中会经常用到,比如一些排序的程序中或者是类似前面的计算最大公约数等等,因此数值交换是编程最基本也是最重要的,这里陈述两种方法:
1.使用中间变量来暂时的存储一个变量的值,这一点很容易理解,也很容易实现,代码类似这样:以下代码在Windows10环境下使用VS2013编译和执行

#include<stdio.h>   //包含标准输入和输出
#include<windows.h>        //包含请求系统暂停的系统函数
#pragma warning(disable:4996)       //消除scanf不安全警告
int main(){ //主函数
 int a, b;  //存储两个变量
 printf("输入两个变量:\n"); //提示输入两个整形数字
 scanf("%d %d", &a, &b);  //标准输入
 printf("未交换前的值:\na = %d,b = %d\n", a, b); //输出交换前的值
 int temp = a;    //a的值赋给temp
 a = b;  //b的值赋给a
 b = temp; //temp的值赋给b
 printf("交换后的值:\na = %d,b = %d\n", a, b);  //输出交换后的值
 system("pause"); //请求系统暂停
 return 0;
}

2.不使用中间变量来使两个数值交换,这个算法通过加减法实现,自己想的话可能一时半会还想不出来,可能也没有那么好理解,没关系,那就记住它吧。

//程序多余头尾不再重复
#include<stdio.h>
int main(){
	int a,b;  //存储两个变量
 	printf("输入两个变量:\n"); //提示输入两个整形数字
 	scanf("%d %d",&a,&b);  //标准输入
 	printf("未交换前的值:a = %d,b = %d\n",a,b); //输出交换前的值
	a = a + b;	//a+b的值存入a,a的值丢矢
	b = a - b;	//则b = a - b,此时b的值变为a的值。a仍然存储a+b的值
	a = a - b;	//此时b已经变成a的值,即a的值转变为b的值
	//不理解就记住它吧,反正我也是这么干的
	printf("交换后的值:a = %d,b = %d\n",a,b);  //输出交换后的值
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值