在方法中显示数组

本文关键字:数组 显示 方法 | 更新日期: 2023-09-27 18:12:44

这与我之前发布的另一个代码有关,但由于这是一个不同的问题,我决定做一个新的帖子。我目前被这段代码卡住了,我是c#初学者,所以这对我来说看起来很复杂。我一直在研究这段代码,它应该从用户那里得到一个数组,计算它的平均值,然后在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;
        }

在方法中显示数组

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

EDIT:下面是如何在函数中使用上面的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,以及如何使用scoreArray[i]访问每个值(其中i是一个从0到4的数字)。

int[] scoreGetValues中移出,并在类级别声明为静态:

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

我的下一个建议是不要在函数内部做超出其名称所要求的事情;例如,GetValues()应该只从user获取值;不要计算总数(就像你现在做的那样),因为这是误导;它迫使您查看实现以确切地知道它做了什么。同理,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();
        }
    }
}

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