不用中间变量实现两个数的交换
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ExchangeDemo { class Program { static void Main(string[] args) { int a=7, b=8; Console.WriteLine("交换之前\ta:" + a + "\tb:" + b); //加减法交换 a = a + b; b = a - b; a = a - b; Console.WriteLine("交换之后\ta:" + a + "\tb:" + b + "\r\n"); Console.WriteLine("交换之前\ta:" + a + "\tb:" + b); //乘除法交换,b不为0 a = a * b; b = a / b; a = a / b; Console.WriteLine("交换之后\ta:" + a + "\tb:" + b + "\r\n"); Console.WriteLine("交换之前\ta:" + a + "\tb:" + b); //异或法交换,异或法可以完成对整型变量的交换,对于浮点型变量它无法完成交换 a ^= b;//a=a^b b ^= a;//b=b^(a^b)=b^a^b=b^b^a=0^a=a a ^= b;//a=(a^b)^a=a^b^a=a^a^b=0^b=b Console.WriteLine("交换之后\ta:" + a + "\tb:" + b + "\r\n"); Console.WriteLine("交换之前\ta:" + a + "\tb:" + b); a = a + b - (b = a); Console.WriteLine("交换之后\ta:" + a + "\tb:" + b + "\r\n"); Console.WriteLine("交换之前\ta:" + a + "\tb:" + b); b = a + (a = b) * 0; Console.WriteLine("交换之后\ta:" + a + "\tb:" + b + "\r\n"); Console.Read(); } } }

此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。

浙公网安备 33010602011771号