簡體   English   中英

如何顯示鋸齒狀數組? - C#

[英]How to Display a Jagged Array? - C#

我正在嘗試獲取一個鋸齒狀數組,它將解決 dailyTemperature 中元素的總和,並將在天氣 class 下的 Main () 中成功顯示它們。這就是我到目前為止所擁有的。

 public int[,] GetTemperatures()
        {
            int[,] dailyTemperature =
            {
                {38, 40, 42, 34},
                {55, 41, 40, 30},
                {28, 39, 21, 60},
                {61, 52, 43, 42},
                {35, 36, 30, 29},
                {24, 33, 37, 40}
            };

            Console.Write(" ");
            for (int i = 0; i < dailyTemperature.Length; i++)
            {
                Console.Write(dailyTemperature[i] + " ");
            }
            Console.WriteLine();
            for (int i = 0; i < dailyTemperature.GetLength(0); i++)
            {
                Console.Write(dailyTemperature[i].Substring(0, dailyTemperature[i].Length - 1) + " "); 

                for (int j = 0; j < dailyTemperature.GetLength(1); j++)
                {
                    Console.Write(dailyTemperature[i, j] + "    "); 
                }
                Console.WriteLine();
            }
            return dailyTemperature;
}

{

     public int[] GetTemperatureSum(int [,] dailyTemperature)
        {
            int[][] temperatureSum= new int[6][];
            temperatureSum[0][1] = dailyTemperature[0, 0] + dailyTemperature[0, 1] + dailyTemperature[0, 2] + dailyTemperature[0, 3];
            temperatureSum[0][2] = dailyTemperature[1, 0] + dailyTemperature[1, 1] + dailyTemperature[1, 2] + dailyTemperature[1, 3];
            temperatureSum[0][3] = dailyTemperature[2, 0] + dailyTemperature[2, 1] + dailyTemperature[2, 2] + dailyTemperature[2, 3];
            temperatureSum[0][4] = dailyTemperature[3, 0] + dailyTemperature[3, 1] + dailyTemperature[3, 2] + dailyTemperature[3, 3];
            temperatureSum[0][5] = dailyTemperature[4, 0] + dailyTemperature[4, 1] + dailyTemperature[4, 2] + dailyTemperature[4, 3];
            temperatureSum[0][6] = dailyTemperature[5, 0] +dailyTemperature[5, 1] + dailyTemperature[5, 2] + dailyTemperature[5, 3];
            for (int i = 0; i < temperatureSum.GetLength(0); i++)
            {
                for (int j=0; j<temperatureSum.GetLength(1); j++)
                {
                    Console.Write(temperatureSum[i][j]);
                }
                Console.WriteLine();
            }
            return temperatureSum;
        }
        static void Main(string[] args)
        {
            Weather weather= new Weather();
 {
                    weather.GetTemperatures();
                    weather.GetTemperatureSum(dailyTemperature);

        }
};

我在這里的策略是通過 Main() 方法顯示所有這些方法,但是我在 weather.GetTemperatureSum 的 (dailyTemperature) 下收到錯誤。 這就是錯誤所說的“非靜態字段、方法或屬性‘成員’需要 object 引用”。

如果有人可以幫助我,我會很高興,盡管據我了解格式必須與此相對相似。 例如,我絕對需要通過計算機求解總和,而不是手動求解。 謝謝。

更多詳情:

int[,] dailyTemperatures =
{
    { 38, 40, 42, 34 },
    { 55, 41, 40, 30 },
    { 28, 39, 21, 60 },
    { 61, 52, 43, 42 },
    { 35, 36, 30, 29 },
    { 24, 33, 37, 40 }
};

Weather.GetTemperatures(dailyTemperatures);
Weather.GetTemperatureSum(dailyTemperatures);

public static class Weather
{
    public static int[,] GetTemperatures(int[,] dailyTemperatures)
    {
        
        var rows = dailyTemperatures.GetUpperBound(0) + 1;
        var columns = dailyTemperatures.Length / rows;

        for (var i = 0; i < rows; i++)
        {
            for (var j = 0; j < columns; j++)
            {
                Console.Write($"{dailyTemperatures[i, j]} \t");
            }
            Console.WriteLine();
        }

        return dailyTemperatures;
    }

    public static int[] GetTemperatureSum(int[,] dailyTemperature)
    {
        var temperatureSum = new int[6];
        temperatureSum[0] = dailyTemperature[0, 0] + dailyTemperature[0, 1] + dailyTemperature[0, 2] + dailyTemperature[0, 3];
        temperatureSum[1] = dailyTemperature[1, 0] + dailyTemperature[1, 1] + dailyTemperature[1, 2] + dailyTemperature[1, 3];
        temperatureSum[2] = dailyTemperature[2, 0] + dailyTemperature[2, 1] + dailyTemperature[2, 2] + dailyTemperature[2, 3];
        temperatureSum[3] = dailyTemperature[3, 0] + dailyTemperature[3, 1] + dailyTemperature[3, 2] + dailyTemperature[3, 3];
        temperatureSum[4] = dailyTemperature[4, 0] + dailyTemperature[4, 1] + dailyTemperature[4, 2] + dailyTemperature[4, 3];
        temperatureSum[5] = dailyTemperature[5, 0] + dailyTemperature[5, 1] + dailyTemperature[5, 2] + dailyTemperature[5, 3];
        for (var i = 0; i < temperatureSum.GetLength(0); i++)
        {
            Console.WriteLine(temperatureSum[i]);
        }
        return temperatureSum;
    }
}

GetTemperatureSum方法中,返回的類型是一個數組 ( int[] )。 最好將dailyTemperatures變量作為方法參數傳遞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM