一区二区国产高清视频在线_真人性做爰A片免费_强伦人妻BD在线电影_亚洲熟妇无码AV_免费人成视频在线观看网站_亚洲欧美精品午睡沙发_在线观看无码的免费网站_中文字幕无码A片久久_日韩欧美国产一区精品_久久精品女人天堂av

重慶醫(yī)科大學(xué)論壇

標(biāo)題: 求三個(gè)數(shù)中最大者的幾種方法! [打印本頁]

作者: 小鳳尾    時(shí)間: 2006-9-7 15:39
標(biāo)題: 求三個(gè)數(shù)中最大者的幾種方法!


方法1:根據(jù)基本算法編制函數(shù)

下面直接給出程序。
int my_max(int x,int y,int z)
{
 int max;
 max=x;
 if(y>max)max=y;
 if(z>max)max=z;
 return max;
}


方法2: 用條件運(yùn)算符

假設(shè)三個(gè)數(shù)存放在三個(gè)變量x,y,z中,可用下面的條件運(yùn)算符求得最大數(shù)。
(1) 不用中間變量
   x>y ? (x>z?x:z)y>z?y:z)
算法說明:先將x和y比較,若x>y,則最大數(shù)必定在x和z中間,因此再取x和z中的最大者;否則,最大數(shù)必定在y和z中間,因此就取y和z中的最大者。

(2) 用一個(gè)中間變量m
  (m=x>y?x:y)>z?m:z
算法說明:先取x和y的最大者并賦值給m,然后求m和z中的最大者

(3) 不用中間變量
  (x>y&&x>z)?xy>z?y:z)
算法說明:先看x是否比y和z都大,若是,x即為最大者,否則,最大者必定在y和z中間,因此就取y和z的最大者。


方法3:用宏

(1)定義帶三個(gè)參數(shù)的宏
先定義如下帶參數(shù)的宏
#define MAX(x,y,z) (((x)>(y)&&(x)>(y))?(x)(y)>(z)?(y):(z)))
然后在程序中使用上述宏替換即可。
注意:(1)上述宏定義中的每個(gè)形參及整個(gè)宏體都要加上小括號(hào),原因請(qǐng)參閱“定義帶參數(shù)的宏時(shí),宏體中的形參為什么一定要加小括號(hào)?”專題。(2)該宏定義中使用了方法2中(3)的算法。也可以使用其中的(1)或(2)的算法來定義宏體。
(2)定義帶二個(gè)參數(shù)的宏
#define MAX(x,y) ((x)>(y)?(x):(y))
使用時(shí),應(yīng)該這樣:MAX(MAX(a,b),c),其中的a、b、c為實(shí)參,它的算法與方法2中的(2)是一樣的。

轉(zhuǎn)貼自:http://www.hljcre.com/dispbbs.asp?boardID=15&ID=1866





歡迎光臨 重慶醫(yī)科大學(xué)論壇 (http://www.espacio12.com/) Powered by Discuz! X3.4