尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

C语言之交换两数的值(有无中间变量)

C语言之交换两数的值(有无中间变量) 一、使用中间变量#include stdio.h int main() { int a 1, b 2, c 0; printf(a%d,b%d\n, a, b); c a; a b; b c; printf(a%d,b%d\n, a, b); return 0; }二、不使用中间变量1加减法如果两个数值过大则可能会导致溢出。#include stdio.h int main() { int a1,b2; printf(a%d,b%d\n,a,b); //aa0b0 aab; //ba-b0a0 ba-b; //aa-ba0b0-a0b0 aa-b; printf(a%d,b%d\n,a,b); return 0; }2乘除法同样也可能会导致溢出。#include stdio.h int main() { int a 5, b 15; a a * b; b a / b; a a / b; printf(a%d b%d\n, a, b); return 0; }3异或法异或^比较对应位置上的数字如果相等则为0如果不等则为1。要点任何一个变量与其自身进行异或结果为0与0进行异或结果为其本身。多个变量异或可以交换位置。#include stdio.h int main() { //a6-0110b3-0011 int a 6, b 3; printf(a%d,b%d\n, a, b); //aa0^b0 a a ^ b; //ba^b0a0^b0^b0a0; //任何一个变量与其自身进行异或结果为0。 //任何一个变量与0进行异或结果为其自身。 b a ^ b; //aa^ba0^b0^a0a0^a0^b0b0; //多个变量异或可以交换位置。 a a ^ b; printf(a%d,b%d\n, a, b); return 0; }以上三种不使用中间变量的方法其中异或运算效率最高且不会产生数据溢出推荐使用。
返回列表