0

我几乎按预期工作。它本身的程序可以运行,但输出有点古怪。它需要多次点击返回键才能显示在 for 循环中并由 output() 方法调用的数组的内容。

=( 看起来很简单,但我没有看到我的问题。

我的第二个问题是我调用 output(arr) ONCE 但输出根据数组的大小打印数组的多个实例....

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

在输出方法中只需要一个循环。试试这样...

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 回答
2

您的代码中有几件事,

您的输出方法正在接收类型的参数Array,而不是应该接收int[],并且您应该循环一次,而不是两次。

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]);
                }
        }

第二,在您的 Main 方法中,您使用提示 Enter First Value ,当用户假设输入第二个或更高元素的值时,这有点令人困惑,您可以将其更改为:

    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 回答