「最大値・最小値」(2012/02/09 (木) 17:00:58) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*最大値・最小値
#region(close,説明)
問題を解く上で、値の大小を比較する場面が非常にたくさんあります。
大小の比較は
if( a > b ){
処理1;
}else{
処理2;
}
のようにかけます。しかし、もう少し短く書けます。
(a>b)? 処理1 : 処理2 ;
短くなりました。
いちいち条件分岐を書くのはどうかと思ったら、関数にするという選択肢もあります。
例えばaとbのうち値の大きい方と小さい方を返す関数を書くと
inline int max(int a,int b){
return (a>b)? a : b ;
}
inline int min(int a,int b){
return (a<b)? a : b ;
}
短い関数なのでマクロ関数にする人がいるかもしれませんが、マクロ関数は安全性に欠けるので、
inlineを関数の初めにつけてインライン関数にするとよいでしょう。
#endregion
C++では、<algorithm>ヘッダをインクルードすることでmax(),min()関数が使えるので、
自分で書く必要はありません。max(),min()はよく使うので覚えておいてください。
引数の型は、int型でもdouble型でも使えます。
例)
max( 12 , 35 ); //35が返ってくる
min( -5.0 , 56.6 ); //-5.0が返ってくる
***配列aから最大の値を返す関数
int array_max(int a[], int n){
int m = a[0];
for(int i=1 ; i<n ; i++){
m = max( a[i] , m );
}
return m;
}
***配列aから最小の値を返す関数
int array_mim(int a[], int n){
int m = a[0];
for(int i=1 ; i<n ; i++){
m = min( a[i] , m );
}
return m;
}
...
*最大値・最小値
C++では、<algorithm>ヘッダをインクルードすることでmax(),min()関数が使えるので、
自分で書く必要はありません。max(),min()はよく使うので覚えておいてください。
引数の型は、int型でもdouble型でも使えます。
例)
max( 12 , 35 ); //35が返ってくる
min( -5.0 , 56.6 ); //-5.0が返ってくる
***配列aから最大の値を返す関数
int array_max(int a[], int n){
int m = a[0];
for(int i=1 ; i<n ; i++){
m = max( a[i] , m );
}
return m;
}
***配列aから最小の値を返す関数
int array_mim(int a[], int n){
int m = a[0];
for(int i=1 ; i<n ; i++){
m = min( a[i] , m );
}
return m;
}
...
表示オプション
横に並べて表示:
変化行の前後のみ表示: