在方法中显示数组

时间:2011-10-31 01:25:13

标签: c# arrays

这与我之前发布的另一个代码有关,但由于这是一个不同的问题,我决定发一个新帖子。我目前仍然坚持使用这段代码,我是一名初学者,所以这看起来很复杂。我一直在研究这个代码,它应该从用户那里得到一个数组,计算它的平均值,然后在show()中显示结果。我得到这个工作来显示数组的平均值,但现在我需要实际显示每个值的数组,即你输入的第一个值是:12      你进入的第二个值是:32

谢谢你们!

        private static int Array()
        {
            string inValue;
            int[] score = new int[10];
            int total = 0;

            for (int i = 0; i < score.Length; i++)
            {
                Console.Write("Enter Value {0}: ", i + 1);
                inValue = Console.ReadLine();
                score[i] = Convert.ToInt32(inValue);
            }

            for (int i = 0; i < score.Length; i++)
            {
                total += score[i];   
            }
            return total;
        }

3 个答案:

答案 0 :(得分:2)

更改GetValues()函数以实际返回整数数组,然后在其他函数中使用返回值。

即。将GetValues()更改为:

    private static int[] GetValues()
    {
        string inValue;
        int[] score = new int[5];
        int total = 0;

        for (int i = 0; i < score.Length; i++)
        {
            Console.Write("Enter Value {0}: ", i + 1);
            inValue = Console.ReadLine();
            score[i] = Convert.ToInt32(inValue);
        }

        return score;
    }

编辑:以下是如何在函数中使用上面的GetValues()函数来打印出所有值。你应该能够从这里解决剩下的问题:

private static void PrintArray(int[] scoreArray)
{
    for (int i = 0; i < scoreArray.Length; i++)
    {
         Console.WriteLine("Value #{0}: {1}", i + 1, scoreArray[i]);
    }
}

注意如何使用scoreArray[i]传递scoreArray以及如何访问每个值(其中i是0到4之间的数字)。

答案 1 :(得分:1)

int[] score移出GetValues并在类级别声明它,使其成为静态:

 static int[] score = new int[5];

我的下一个建议是,你不要在你的职能范围内做更多的事情而不是他们声称从他们的名字做的事情;例如,GetValues()应该只从用户获取值;不计算总数(正如你所做的那样),因为它具有误导性;它迫使您查看实现以确切知道它的作用。同样适用于Show();如果目的是显示用户输入的值,则将其称为ShowValues();如果目的是显示用户输入的值以及计算平均值,则将其命名为ShowValuesAndAverage()

以下是我的建议的完整实施程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testscores
{
    class Program
    {
        static int[] score = new int[5];
        //Get Values     
        private static void GetValues()
        {
            string inValue;

            for (int i = 0; i < score.Length; i++)
            {
                Console.Write("Enter Value {0}: ", i + 1);
                inValue = Console.ReadLine();
                score[i] = Convert.ToInt32(inValue);
            }

        }

        //FIND AVERAGE
        private static double FindAverage()
        {
            double total = 0.0;
            for (int i = 0; i < score.Length; i++)
            {
                total += score[i];
            }
            double average = total / 5.0;
            return average;
        }

        //Show
        static void ShowValuesAndAverage()
        {
            Console.WriteLine("The values are:");
            for (int i = 0; i < score.Length; i++)
            {
                Console.WriteLine(string.Format("The {0} value you entered was {1}", i + 1, score[i]));
            }
            Console.WriteLine("The average is: {0}", FindAverage());
        }
        //Main
        static void Main()
        {
            GetValues();
            ShowValuesAndAverage(); 
            Console.ReadKey();
        }
    }
}

答案 2 :(得分:0)

为GetValues()创建一个函数并返回数组。然后将数组传递给AddValues()函数,并传递给Show()。 无论是那个还是读过如何使用指针,但这可能会使事情过于复杂。