宜しくお願い致します。
VB2005を使って書いてます。
内容は質問タイトル通りなのですが、配列内の格納されている数値の中で最大値を抽出し、index番号も取得したのですが、かなり考えたのですが思いつかないので、こちらで質問させていただきました。
もちろん配列内では、最大値が一つとは限らず、複数個存在する場合がありますので、該当する全てのindex番号に関しては抽出することができるようにと考えています。
後々そのindex番号を使って検索を行うことになりますので、出来ましたらそのindex番号をさらに配列に格納し、For~nextを利用して簡単に参照することが出来るように出来たら理想的なのですが・・・
どなたかお知恵を拝借させてください。
宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
配列のデータがすでにどこかで生成されているなら
' arDataが元データ
dim arIndex() as Integer
Array.Resize( arIndex, arData.Length)
for n as integer = 0 to arData.Length -1
arIndex(n) = n
next
' インデックスもソートする
Array.Sort( arData, arIndex )
dim nMax = arData( arData.Length - 1 ) )
dim sb as new System.Text.StringBuilder
for n = arIndex.Length-1 to 0 step -1
if arData( n ) = nMax then
if sb.Length<> 0 then
sb.Appned(",")
endif
sb.Append( "{0}", arIndex(n) )
else
exit for
end if
next
' 元に戻す
Array.Sort( arIndex, arData )
MessageBox.Show( String.Format("最大値:{0}, Index:{1}", nMax, sb.ToString())
といった具合で ・・・
No.2
- 回答日時:
ArrayList を使うと楽に処理できます。
サンプルソース(インデントのために.を挿入)
(普段、VB.NETは使わないので文法エラーが有るかも)
Dim objVal(9999) As Integer'検索対象の配列
Dim arrVal As ArrayList'戻り値のアレイ
Dim maxVal As integer'最大値
Dim idx As Integer'
・ ・ ・
maxVal = -99999999'最大値の初期値
For idx = 0 To 9999
..If maxVal < objVal(idx) Then
....'新たな最大値
....arrVal = new ArrayList()
....maxVal = objVal(idx)
....arrVal.Add(maxVal)
..End If
..If maxVal = objVal(idx) Then
....'最大値のindexを格納
....arrVal.Add(idx)
..End If
Next idx
・ ・ ・
Return arrVal
とすれば、arrValの最初の要素は最大値、
以降の要素はindex番号 となります。
No.1
- 回答日時:
取り敢えず最大値は、
http://www.google.co.jp/search?sourceid=navclien …
あとは配列内を順に見ていって、同じ数値ならそのIndex番号を取得していけば
いいように思うのですが。
素人考えなので違っていたらスル~して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) INDEX関数とMATCH関数を使用し値を返す数式についてです 2 2022/04/20 13:40
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Java Java 配列<選挙> 4 2023/07/31 15:07
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) 関数を教えてください。 2 2023/08/01 10:59
- その他(プログラミング・Web制作) python pandas 行ごとに列名(列番号)を指定して抽出したい 1 2023/05/26 13:47
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Java Java 南京錠 2 2023/02/04 11:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
array関数で格納した配列の型を...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
Excelのセルの色指定をVBAから...
-
[VBA]改行入りのセルの値を配列...
-
VB6.0 ファイルの一括読込み
-
【VBA】ユーザーフォーム リス...
-
VBA listBoxについて
-
DataSetから、DataTableを取得...
-
16進数から2進数へ
-
【VBA】配列に数式を仕込む方法...
-
For Nextマクロの高速化につい...
-
Dictionaryを使い4つの条件の一...
-
Excel VBA 配列の分割について
-
VBAで指定期間の範囲を抽出し、...
-
C言語で、変数名を引数として渡...
-
ExcelVBAの配列変数で一括でセ...
-
配列のSession格納、及び取得方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
ExcelのINDEXとMATCH関数でスピ...
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
VBA listBoxについて
-
配列がとびとびである場合の書き方
-
表にフィルターをかけ、絞った...
-
VBA 配列に格納した値の平均の...
-
[VBA]改行入りのセルの値を配列...
-
エクセルでエラーを無視して一...
-
iniファイルのキーと値を取得す...
-
二次元配列の中の各行の要素を...
-
SUMPRODUCT関数を用いた最小値
-
【VBA】ユーザーフォーム リス...
-
Split関数でLong配列に格納する...
-
【VBA】配列に数式を仕込む方法...
-
.NET - 配列変数を省略可能の引...
-
スプレットシートのGetTextにつ...
-
Excelのオートフィルタで抽出し...
おすすめ情報