程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言數據交換的幾種方法

c語言數據交換的幾種方法

編輯:關於C語言

這是個很common的例子,實現2個數據a,b的交換,a的值給b,b的值給a. 一般做法是借助中間變量緩存,實現交換。實現方法如下: #include<stdio.h> int main(void){ int a , b, t; scanf("%d%d", &a, &b); t = a; a = b; b = t; printf("%d %d\n", a, b); return 0; } 第二種方法是不用任何變量,使用強制相加,然後逐一分離,如下: #include<stdio.h> int main(void){ int a , b; scanf("%d%d", &a, &b);//a = a1,b = b1 a = a + b;//a = a1 + b1 b = a - b;//b = a1 + b1 - b1  => b = a1 a = a - b;//a = a1 + b1 - (a1 + b1 - b1) => a = b1 printf("%d %d\n", a, b); return 0; } 第三種方法,指針交換,例如: #include<stdio.h> int main(void){ int a , b; scanf("%d%d", &a, &b); printf("%d %d\n", b, a); return 0; } 還有一種是堆棧方式,改變出棧順序,嵌入匯編如下: push a push b pop a pop b 當然也可用c語言來實現堆棧函數,然後來完成a,b交換。 總結:實現方式多種,有自己的優劣勢。第一種常用,但多一個變量;第二種,少一個變量,但不常用;第三種簡潔好用。第四種用堆棧的特性先進後出,改變出棧順序實現交換。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved