0
私はごととして、私はランタイムエラーを取得しています4のテストのいずれかに挿入ソートアルゴリズムここでランタイムエラーにつながる論理エラーはありますか?
using System;
using System.Collections.Generic;
using System.IO;
class Solution
{
static void Main(String[] args)
{
Console.ReadLine();
int[] arr = Array.ConvertAll(Console.ReadLine().Split(' '), Int32.Parse);
Func<int[], string> IntArrayToString = (x) => string.Join(" ", Array.ConvertAll(x, k => k.ToString()));
for(int i = arr.Length - 2, last = arr[arr.Length - 1]; ; --i)
{
if(arr[i] > last)
{
arr[i + 1] = arr[i];
Console.WriteLine(IntArrayToString(arr));
}
else
{
arr[i + 1] = last;
break;
}
}
Console.WriteLine(IntArrayToString(arr));
}
}
の手順を印刷したコードの一部を持っています。問題は、ランタイムエラーやテストケースが(実際にサイトでアカウントを購入していない限り)表示されないことです。ですから、私はその問題を推測したり考えたりしなければなりません。私はすでにループの前にエラーを受け取り、
if(arr.Length < 2)
{
Console.WriteLine(IntArrayToString(arr));
return;
}
を追加しようとしました。あなたのfor
ループを見てみると
あなたの配列がそれにインデックスを付ける前に、空である場合は、確認しましたか? – Sherlock
あなたはelmahをインストールしてそこにエラーを見ることができます。あなたが – lordkain
を期待することはありませんその他のエラーのためalse便利であなただけのtry..catchブロックで全体をラップし、エラーが何であるかを見つけるために、catchブロックでConsole.WriteLineを行うことができませんでしたか? (デバッグの目的のみ) –