:
public static int arrayReverse(int[] array)
{
int c = array.Length - 1, b;
for (int i = 0; i < (array.Length/2); i++)
{
b = array[i];
array[i] = array[c];
array[c] = b;
c--;
}
return array[c];
}
私の主な機能は次のようになります。ここでは、これを試してみる:
public static int[] arrayReverse(int[] array)
{
int c = array.Length - 1, b;
for (int i = 0; i < (array.Length/2); i++)
{
b = array[i];
array[i] = array[c];
array[c] = b;
c--;
}
return array;
}
をまた、あなたは今すぐmain
array = arrayReverse(array);
で返された配列をバックに割り当てるされていない、あなたが要素を書いているので、あなたは、まったくの配列を返す必要はありません。新しい配列を割り当てないでください。
ここでは、In-Placeと新しい配列の実装のコードを見つけてください。それをデバッグする - 紙にコードを書いて何が起きているのかを分析しよう。
static void Main(string[] args)
{
try
{
int[] array = new int[] { 1, 5, 3, 4, 2 };
//Reverse copy of Array
var newarr = arrayReverseNewArray(array);
//Display New Array Elements
foreach (int x in newarr)
Console.Write(x + ",");
Console.WriteLine("");
//Reverse original Array
arrayReverseinPlace(array);
//Display original Array Elements
foreach (int x in array)
Console.Write(x + ",");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private static void arrayReverseinPlace(int[] array)
{
for (int i = 0; i < array.Length/2; i++)
{
int tempvar = array[i];
array[i] = array[array.Length - i - 1];
array[array.Length - i - 1] = tempvar;
}
}
private static int[] arrayReverseNewArray(int[] array)
{
int[] arr = new int[array.Length];
int j = 0;
for (int i = array.Length - 1; i >=0 ; i--)
{
arr[j] = array[i];
j++;
}
return arr;
}
ここにはRunning Sample Codeがあります。
戻り値は使用されません。 int []は参照型であり、リターンせずに変更できます。 –
なぜ車輪を改造するのですか? 'int [] array = new int [] {1、5、3、4、2}; Array.Reverse(array); ' – fubo
組み込み関数を使用したくない場合 –