0

私はこれをほぼ意図したとおりに機能させています。プログラム自体は機能しますが、出力はやや厄介です。forループ内にあり、output()メソッドによって呼び出されている配列の内容を表示するには、リターンキーを複数回押す必要があります。

=(簡単なことのように思えますが、問題は発生していません。

2番目の問題は、output(arr)を1回呼び出すが、出力は配列のサイズに基づいて配列の複数のインスタンスを出力するという事実です。

class Program
{
    static void Main(string[] args)
    {
        int value;

        Console.Write("How big of an Array? ");
        int arraySize = int.Parse(Console.ReadLine());
        int[] arr = new int[arraySize];


        for (int i = 0; i <= arraySize - 1; i++)
        {
            Console.Write("First Value: ");
            value = int.Parse(Console.ReadLine());
            arr[i] = Convert.ToInt32(value);
        }

        output(arr);
        Console.ReadLine();
    }

    static void output(Array arr)
    {

        foreach (int i in arr)
        {
            for (int v = 0; v < arr.Length; v++)
            {
                string number = "Value: ";
                string arrayPoint = "Array Section: ";

                Console.WriteLine("{0}{1}\t{2}{3}", arrayPoint, v, number, i);

            }
        }
    }
}
4

2 に答える 2

2

コード内のいくつかのこと、

出力メソッドはタイプのパラメータを受信して​​いますがArray、代わりにを受信して​​いる必要がありint[]、2回ではなく1回ループする必要があります。

static void output(int[] arr)
        {
                for (int v = 0; v < arr.Length; v++)
                {
                    string number = "Value: ";
                    string arrayPoint = "Array Section: ";

                    Console.WriteLine("{0}{1}\t{2}{3}", arrayPoint, v, number, arr[v]);
                }
        }

2番目に、MainメソッドでプロンプトEnter First Valueを使用しています。これは、ユーザーが2番目以降の要素の値を入力することを想定している場合、多少混乱します。次のように変更できます。

    for (int i = 0; i <= arraySize - 1; i++)
    {
        Console.Write(string.Format("Value for Element {0}: ",i));
        value = int.Parse(Console.ReadLine());
        //arr[i] = int.Parse(Console.ReadLine()); // or you can do
        arr[i] = value;
    }
于 2012-07-04T04:36:12.880 に答える
2

outputメソッドに必要なループは1つだけです。このようにしてみてください...

static void output(Array arr)
{
    for (int v = 0; v < arr.Length; v++)
    {
        string number = "Value: ";
        string arrayPoint = "Array Section: ";

        Console.WriteLine("{0}{1}\t{2}{3}", arrayPoint, v, number, arr.GetValue(v));
    }
}
于 2012-07-04T04:27:36.673 に答える