A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
次のコードはscoreの件数が多い場合は処理が遅いですが仕組みは簡単です。
score(i)の値がscore配列内で何回抜かれるかをカウントすることでrankを求めます。たとえば5の場合は10に3回抜かれるのでカウンタ回数は3です。カウンタはランクが1から始まる関係で初期値を1とします。
結果は1+3=4とrankの値となります。
Sub Main()
Dim score() As Integer = {10, 5, 10, 2, 10}
Dim rank(4) As Integer
For i = 0 To 4
rank(i) = 1
For k = 0 To 4
If score(i) < score(k) Then
rank(i) = rank(i) + 1
End If
Next
Next
For i = 0 To 4
Debug.Print("rank(" & i & ") = " & rank(i) & ", ")
Next
End Sub
No.1
- 回答日時:
'個人的にはラムダ式よりC#の匿名メソッドのほうが好きだが,VB.NETにはラムダ式しかない
'行数を減らすのにラムダ式が大活躍したが,反面下手すると初心者お断りのコードになった気がする。
Option Explicit On
Option Strict On
Option Compare Binary
Option Infer Off
Class Q5172313
Shared Sub Main()
Dim x As System.Collections.Generic.List(Of Integer) = new System.Collections.Generic.List(Of Integer)(New Integer(){10, 5, 10, 2, 10})
Dim arr As Integer() = RankArray(x)
For Each i As Integer in arr
System.Diagnostics.Debug.Print(i.ToString())
Next
End Sub
Shared Function RankArray(x As System.Collections.Generic.List(Of Integer)) As Integer()
Dim y As System.Collections.Generic.List(Of Integer) = new System.Collections.Generic.List(Of Integer)(x)
'lambda expression
y.Sort(Function(i As Integer,j As Integer) j - i )
Dim z As Integer() = x.ConvertAll(Function(i As Integer) y.IndexOf(i) + 1).ToArray()
return z
End Function
End Class
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- 株式市場・株価 【配当利回りランキングが各サイトで上位の順番が違うのはなぜですか?】 https://s.minka 3 2022/06/26 09:04
- 政治学 【 公共 衆議院の比例代表制 】 衆議院の比例代表順位名簿は、 各政党が前もって決定しているため、 3 2022/06/30 17:40
- Excel(エクセル) Excel 複数列のある文字を優先して1列に表示したいです 2 2022/12/03 12:07
- 弁護士・行政書士・司法書士・社会保険労務士 行政書士試験の民法についての質問になります。 時効についての質問になります。 問 Aが甲債権の担保と 1 2023/07/06 21:51
- 弁護士・行政書士・司法書士・社会保険労務士 ★行政書士試験の民法についての質問になります。 時効についての質問になります。 問 Aが甲債権の担保 1 2023/05/22 21:49
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Java Java 南京錠 2 2023/02/04 11:46
- 世界情勢 勉強しない日本の大学生と、死に物狂いで勉強するアメリカの大学生。日本が負けて当然の理由ですね^^ 11 2022/10/24 07:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
コンボボックスのインデックス...
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
構造体配列の特定のメンバーをF...
-
配列の要素がすべてカラかどう...
-
配列の中の最大値とそのインデ...
-
Redim とEraseの違いは?
-
Excelマクロ:配列データからグ...
-
C言語 ポインタと配列
-
vba フィルター 複数条件 3つ以...
-
CheckBoxの配列化
-
VBで重複しているデータをユニ...
-
エクセルVBAからNotesでメー...
-
エクセルの列一括書き込み
-
定数配列の書き方
-
エクセル(VBA)の空白配列の削除...
-
DBから取得した値を配列へ代入する
-
配列の中から最大値だけ取り出...
-
pictureboxの名前を変数で設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
Dir関数で読み取り順を操作でき...
-
エクセルでXY座標に並べられた...
-
VBAで配列引数を値渡しできない...
-
C++で作成したDLLにVBAから配列...
-
構造体配列の特定のメンバーをF...
-
OutOfMemoryExceptionの回避策...
-
大量の変数を定義するにはどう...
-
VBAでMODE関数をつくる
-
VBScriptでCSVファイルを読み出...
-
定数配列の書き方
-
Segmentation Fault (メモリ制限?)
-
Excelのメモリ(配列)の上限は2G...
-
Redim とEraseの違いは?
-
CheckBoxの配列化
-
配列の中の最大値とそのインデ...
おすすめ情報