情報
大学生・専門学校生・社会人
解決済み

C♯です。
1から100までの乱数を発生させてそれらを並び替えるプログラムを作っているのですがハンドルされていない例外と出てしまいます。どうすればこのエラーを消せるのでしょうか。わかる方お願いします。

フリイクルイベット スレッド: [17076] メインスレッド reidais.exe スタック hairetu_reidai3.Program 。Main(string] 0個の参照 static void Main(string[] args) /乱数宣言 Random rnd = new Random(); /配列宣言 int [] start = new int[10]; //乱数発生 for(int i = 0; i <= start]. Length; i++) start [i] 3D rnd.Next (1, 101)3 Console.Write("{0} start [i]) ハンドルされていない例外 for(int c = 0; c < start].Length; System.IndexOutOfRangeException: 'Index was outside the bous of the array. int max = 0%; int p for(int j = 0; j < start].Leng 0; 詳細の表示詳館のコピー| Live Share セッションを開始 if (max <tar[U]) >例外設定 max = start [j]; p = j; りませんでした
ファイル(F) 集(E) 表示(V) Git(G) プロジェクト(P) ビルト(B) テハック(D) テスト(S) 分(N) ツール(T) 江張競毛(X) ウィ TDebug Any CPU 標行() コス: [14244] hairetu reidai3.exe ロライフサイクルイベント スレッド: [17076] メインスレッド スタックフ m.cs ロX *hairetu_reidai3.Program tortint i = U; i <= starti.Length; i++) etu reidai3 ,Main(string[] arg 4 5 Start [i] rnd.Next (1, 101)3 の Console.Write("{0},start[i]); ハンドルされていない例外 for(int c = 0; c < start].Length; >|int max = 0; int p = 0; for(int j = 0; j < start|.Leng System.IndexOutOfRangeException: 'Index was outside the bound of the array: I 日 詳細の表示||詳細のコピー| Live Share セッションを開始 >例外設定 if (max < start [i]) max = start[]; p=j; Console.Write("{0} ", max); start [p] = 0; ○問題は見つかりませんでした 日

回答

✨ ベストアンサー ✨

for文の範囲指定で i ≦ start.Length の≦を<にしたらいいのでは?

やってみましたが、ハンドルされていない例外というエラーは消えませんでした。

ととろ

2ヵ所ありますけどどちらですか?

2箇所はないです。写真は一枚に収まりきらなかったので二枚載せているだけなので1箇所だけです。

ととろ

<にした後コンパイルし直しました?
止まったところで i が表示できるならしてみて下さい

コンパイルし直したらできました。ありがとうございます。

ととろ

良かったです。

エラーは配列のインデックスが範囲外という意味で、要素数10の配列は0から9までなのに、≦start.Length だとiが10までになってそこでエラーになります。

なるほど、わかりやすい解説ありがとうございます。

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉