1. 程式人生 > >個人-基礎常見五種比較數的函式

個人-基礎常見五種比較數的函式

#C常見的幾種比較
我用的VS2013,標頭檔案與原始檔分開,在此只貼出函式。

  1. 給定兩個整形變數的值,將兩個值的內容進行交換。
void compare(){
	int a = 10;
	int b = 20;
	int tmp = 0;
	tmp = a;
	a = b;
	b = tmp;
	printf("a=%d,b=%d", a, b);
}
  1. 不允許建立臨時變數,交換兩個數的內容
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);
}