個人-基礎常見五種比較數的函式
阿新 • • 發佈:2018-12-02
#C常見的幾種比較
我用的VS2013,標頭檔案與原始檔分開,在此只貼出函式。
- 給定兩個整形變數的值,將兩個值的內容進行交換。
void compare(){
int a = 10;
int b = 20;
int tmp = 0;
tmp = a;
a = b;
b = tmp;
printf("a=%d,b=%d", a, b);
}
- 不允許建立臨時變數,交換兩個數的內容
void compare2(){ int a = 20; int b = 10; a = a - b; b = a + b; a = b - a; printf("a=%d,b=%d", a, b); }
3.求10 個整數中最大值。
void compare3(){
int a[10] = { 12, 23, 51, 5, 24, 35, 62, 25, 19, 60 };
int i;
int max = a[0];
for (i = 0; i < 11; i++){
if (max < a[i]){
max = a[i];
}
}
printf("最大數為%d", max);
}
4.將三個數按從大到小輸出。
void compare4(int a,int b,int c){ int tmp = 0; if (a > b){ tmp = a; a = b; b = tmp; } if (b > c){ tmp = b; b = c; c = tmp; } if (a > b){ tmp = a; a = b; b = tmp; } printf("這三個數的排序為:%d,%d,%d", a, b, c); }
在這裡特別說一下,求最大公約數這用的是相減法,在while語句中,有個特別注意的。a-b的數需要考慮大小的問題,因為一直用大數減小數直到為0.
5.求兩個數的最大公約數。
void compare5(int a,int b){ int tmp = 0; if (a < b){ tmp = a; a = b; b = tmp; } while (a-b!=0){ tmp = a - b; a = b; b = tmp; if (a < b){ tmp = a; a = b; b = tmp; } } printf("最大公約數為:%d", b); }