C語言實現(xiàn)兩個變量值交換的三種方式
1.使用臨時變量(推薦)
這是日常使用最多的一種方式,只需要額外申請一個臨時變量,簡單實用
#include<stdio.h> int main() { int a = 5; int b = 3; printf("交換前 %d %d\n", a, b); int c = a; //a的值放到臨時變量中 a = b; //b的值放到a中 b = c; //臨時變量中存放的a的值放到b中 printf("交換后 %d %d\n", a, b); return 0; }
2.相加和相減的方式(值較大時可能丟失數(shù)據(jù))
使用這種方式的環(huán)境,就是在條件不允許創(chuàng)建額外的臨時變量時(比如題目要求,面試官要求)
但是這種情況雖然能達到交換的效果,但是在兩個變量較大時(接近整型變量的上限),求和之后就會丟失一部分的數(shù)據(jù),導致結果出錯
#include<stdio.h> int main() { int a = 5; int b = 3; printf("交換前 %d %d\n", a, b); a = a + b; b = a - b; a = a - b; printf("交換后 %d %d\n", a, b); return 0; }
3.按位異或運算
這種方式巧妙得運用了按位異或的計算特點——對任何兩個值進行按位異或運算之后,再拿結果與原來的一個值進行按位異或,都會得到另外一個原來的值
這種方式解決了上一種方式存在的丟失數(shù)據(jù)問題,且不需要額外的臨時變量,缺點是可讀性較差
#include<stdio.h> int main() { int a = 5; int b = 3; printf("交換前 %d %d\n", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("交換后 %d %d\n", a, b); return 0; }
到此這篇關于C語言實現(xiàn)兩個變量值交換的三種方式的文章就介紹到這了,更多相關C語言兩個變量值交換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
VSCode插件開發(fā)全攻略之跳轉到定義、自動補全、懸停提示功能
這篇文章主要介紹了VSCode插件開發(fā)全攻略之跳轉到定義、自動補全、懸停提示,需要的朋友可以參考下2020-05-05實例講解C++設計模式編程中State狀態(tài)模式的運用場景
這篇文章主要介紹了實例講解C++設計模式編程中State狀態(tài)模式的運用場景,文章最后的適用性部分則介紹了一些State模式善于處理的情況,需要的朋友可以參考下2016-03-03C語言中isdigit()函數(shù)和isxdigit()函數(shù)的用法
這篇文章主要介紹了C語言中isdigit()函數(shù)和isxdigit()函數(shù)的用法,用來判斷字符師傅為阿拉伯數(shù)字和16進制數(shù)字,需要的朋友可以參考下2015-08-08