• ベストアンサー

配列の中から最大値だけ取り出す方法

VB 2005,Framework2.0を使用しています。 複数のある配列の中から最大値の値だけを抽出するプログラムを作ろうと思っています。 For等のループを使うのは分かりますが、そこからどの様にコードを書けばいいのか分からなく困っています。 例えば配列にランダムに数値が入っていたとします。 Dim Hako(5) As Integer Hako(0) = 10 Hako(1) = 16 Hako(2) = 31 Hako(3) = 12 Hako(4) = 42 Hako(5) = 5 とあったらこの配列の中の最大値(42)のみを抽出したいです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.2

こんにちは  戦略としてソートプロシージャがライブラリとして既にあるならソートして結果を得ればOkです。  全要素数が判っていて一つ一つ比較して調べるなら下記を参考にして下さい。 CONST LastItem = 6'調べる配列データの最大要素数 DIM I AS INTEGR'LOOP変数 DIM MaxItem AS INTEGER'最大値を格納  LET MaxItem=0'結果を入れる変数は、初期化しておく  FOR I=0 TO LastItem-1 STEP 1   '調べた最大値とデータを比較し最大値だったら入替える   IF Hako(I)>MaxItem THEN LET MaxItem=Hako(I)  NEXT I  PRINT MaxItem END

その他の回答 (1)

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.1

こんにちは。 ループでと言うことでしたらこちらでどうでしょうか? Sub TEST() Dim Hako(5) As Integer Hako(0) = 10 Hako(1) = 16 Hako(2) = 31 Hako(3) = 12 Hako(4) = 42 Hako(5) = 5 MsgBox (Max(Hako)) End Sub Private Function Max(ByVal Val As Variant) As Double Dim x As Variant For Each x In Val If IsNumeric(x) Then If x > Max Then Max = x End If Else Max = Max(x) End If Next x End Function --------------------------- 最小値であれば不等号を逆にしてください。