アプリ版:「スタンプのみでお礼する」機能のリリースについて

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)のみを抽出したいです。
宜しくお願いします。

A 回答 (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
    • good
    • 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
---------------------------
最小値であれば不等号を逆にしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A