一区二区国产高清视频在线_真人性做爰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)?x
y>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