2016-10-09 1 views
-3

現在、C#を学ぶために電子ブックを使っていますが、現在私は立ち往生しています。私が一度プッシュしてこの次のビットを理解すると、次のクラスに進んでいくうちに、私の理解と学習が加速されるでしょう。C#で3つの別々のメソッドを使用して配列を逆にする方法

私は次のことを行う必要があり直面する現在の課題:

  • は、配列を逆にする方法を使用するプログラムを作成します。
  • 3つのメソッドを作成します.1つは配列を作成するメソッド、もう1つは配列を出力するメソッド、もう1つは配列を逆にするメソッドです。
  • 理想的には、ユーザーがアレイの希望の長さを入力できるようにします。
  • リバースアレイ方式は使用できません。

これは私が今までに得たコードですが、私は逆の方法を作成する方法に非常に固執しています。私が現在持っているものはどちらでもないと感じています。私はちょうどその場所でクリックし、私が必要とする理解を得るためにここに余分なプッシュが必要です。あなたが望むならば、ヒント/ヒント/アドバイスをソリューションに反対する位置に置いてください。

ありがとうございます。

using System;

namespace Using_methods_to_reverse_an_array { class Program { static int[] CreateArray() { int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; return array; } static void PrintNumbers() { foreach (int numbers in CreateArray()) { Console.WriteLine(numbers); } } static void Main(string[] args) { int[] numbers = CreateArray(); PrintNumbers(); Console.ReadLine(); } } }

+0

あなたは 'PrintNumbers'に' numbers'を渡すべきです。 'PrintNumbers'は' CreateArray'を呼び出すべきではありません。また、あなたが書き込むと、あなたの逆転メソッドに 'numbers'を渡す必要があります。配列を逆にするには、2つの項目を交換する方法、または配列を逆方向にコピーする方法を知る必要があります。 –

+0

私はあなたのコメントが私が次に何をする必要があるか、特にPrintNumbersがCreateArrayを呼び出すべきではないと言ったという事実を私に大いに助けてくれたと思います。 私はそれに別の亀裂があり、私がどのように乗っていくのかを見ていきます。 もう一度ありがとうございます。 – SnowwyWolf

答えて

1
static int[] Reverse(int[] arr){ 
    int [] arr2 = new int[arr.Length]; 
    for (int i = arr.Length - 1, i2 = 0; i >= 0; i--, i2++) 
    { 
     arr2[i2] = arr[i]; 
    } 
    return arr2; 
} 


static void PrintNumbers(int[] arr) 
{ 
    foreach (int numbers in arr) 
    { 
     Console.WriteLine(numbers); 
    } 
} 

static void Main(){ 
    int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int[] arr2 = Reverse(arr); 
    PrintNumbers(arr2); 
} 

プリント

10 
9 
8 
7 
6 
5 
4 
3 
2 
1 
0

は、たぶん私は誤解が、私は、これはそれを行うべきだと思う:ヘルプ皆のため

class Program 
     { 
      static int[] CreateArray() 
      { 
       int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 
       return array; 
      } 
//I changed this to receive an input array 
      static void PrintNumbers(int[] inputArray) 
      { 
       foreach (int numbers in inputArray) 
       { 
        Console.WriteLine(numbers); 
       } 
      } 
//this function should reverse any array passed to it 
      static void ReverseArray(int[] inputArray) 
      { 
       int len = inputArray.Length; 
       int[] newArray = new int[len]; 
       foreach (int i in inputArray) 
       { 
        newArray[i] = inputArray[len - 1]; 
        len--; 
       } 
      } 
      static void Main(string[] args) 
      { 
       int[] numbers = CreateArray(); 
       PrintNumbers(numbers); 
       ReverseArray(numbers); 
       //Console.ReadLine(); 
      } 
     } 
1

おかげトンを、いくつかをやった後、最終製品のグーグルとテストはこれです:

using System; 

namespace Using_methods_to_reverse_an_array 
{ 
    class Program 
    { 
     static int[] CreateArray() 
     { 
      int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
      return array; 
     } 

     static void PrintNumbers(int[] array) 
     { 
      foreach (int numbers in array) 
      { 
       Console.WriteLine(numbers); 
      } 
     } 

     static void ReverseNumbers(int[] array) 
     { 
      for (int i = 0; i < array.Length/2; i++) 
      { 
       int temp = array[i]; 
       array[i] = array[array.Length - i - 1]; 
       array[array.Length - i - 1] = temp; 
      } 

     } 

     static void Main(string[] args) 
     { 
      int[] numbers = CreateArray(); 
      ReverseNumbers(numbers); 
      PrintNumbers(numbers); 
      Console.ReadLine(); 
     } 
    } 
} 
+0

うわー!それはアレイを逆転させるクールな方法です! –

+0

ありがとうございます。私が次に理解する必要があるのは、配列の長さを指定して、それを逆にして、あらかじめ定義された値を使用することに反対することができるようにすることだけです。私が編集をするたびに、あなたが "5"と言うと入力すると、それは単に私の意図ではない0回の5回の出力です。私はこのビットにこだわるので、私はそれを何度か繰り返してから学習を続けます。 – SnowwyWolf

+0

配列の値はどうですか?それは入力されますか? –

関連する問題