概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C アルゴリズム演習2
2006年08月05日 (土) | 編集 |
配列の章も終わりってことで最後にアルゴリズムの演習だ。
第2回のアルゴリズム演習は最大値を求めるプログラムについて。
勝利条件:
「入力されたデータの中から最大値を求めるプログラムを組む」


最大値を求める場合、最初に入力された数値を初期値として、以後のデータがその値より大きければその値で更新し、最後に残った値を出力すればいいことになる。

例えば、
5、1200、10000、180000、530000
というデータが順番に入力された場合は最大値5からスタートし、1200で上回ったから最大値は1200に更新、次に10000で上回ったから10000に更新、180000で上回ったから以下略、最後に残る最大値は530000、といったようになる。強さインフレし過ぎだよなあの漫画。


つまり、入力される変数をa、求められる最大値をmaxとするなら

もし入力された数値aが現在の最大値maxより大きかったら
 その数値aを最大値maxに代入する


こんな感じのプログラムを組めばよいことになる。
更に、データの入力部分はEOFを使うとして、データの入力部分と合わせると

変数aに^Zが入力されるまでの間
 もし入力された数値aが現在の最大値maxより大きかったら
  その数値aを最大値maxに代入する
という処理を繰り返す


こんな感じになる。後は最大値maxを出力すればOK。

max_test.jpgmax_test2.jpg

}を忘れて叱られたがそれ以外は概ねOK。


おまけ
最初に入力する数値は直接maxに代入してもよし
max_test3.jpgmax_test4.jpg
というかその方がスマート?

最大値は何番目に入力された数値なのかも出力してみる
max_test5.jpgmax_test6.jpg
カウント用に変数2つ用意してカウントして表示するだけ

ま、こんなものかね。
まとめよう。

最小値、最大値を求めたい場合は入力された数値を片っ端から判定して、条件を満たした場合には今までの値の代わりに代入すればOK

これも使い道多そうな処理なので覚えておく必要あるかもしらん。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。