0

以下は、C# の基本と原則を実践するために私が作成したプログラムです。

このプログラムは、配列の大きさをユーザーに尋ねint、次に配列を埋め、最後に配列の個々の要素の平均を返します。

LINQ を使用してこれを実行できることはわかっていますが、学習中なので、基本的な方法を学ぶ必要があります。

現状では、私が書いたメソッドはコンソールに何も返しません。何が問題なのか、誰かが私に手がかりを与えることができますか?

ループの 1 つの近くには、forなぜそのように振る舞うかを理解するのに助けが必要だというコメントもあります。

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

namespace _9_21_Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("enter the amount of numbers you would like to find the average of: ");
            int arraylength = Int32.Parse(Console.ReadLine());
            int[] AverageArray = new int[arraylength];

            ////filling the array with user input
            for (int i = 0; i < AverageArray.Length; i++)
            {
                Console.Write("enter the numbers you wish to find the average for: ");
                AverageArray[i] = Int32.Parse(Console.ReadLine());

            }
            //printing out the array, without the -1 the array prints out more one number than it should, don't know why
            Console.WriteLine("here is your array: ");
            for (int i = 0; i < AverageArray.Length -1 ; i++)
            {
                Console.WriteLine(AverageArray[i]);
            }
            Console.WriteLine(Calcs.FindAverage(AverageArray));
            Console.ReadLine();


        }

    }
    //Method to find the average is another class for learning porpoises
    class Calcs
    {
        public static double FindAverage(int[] averageNumbers)
        {
            int arraySum = 0;

            for (int i = 0; i < averageNumbers.Length; i++)
                arraySum += averageNumbers[i];

            return arraySum / averageNumbers.Length;
        }
    }
}
4

2 に答える 2

2

デバッグを試みましたが、コードは正常に機能しています。2番目のループでArrayLength-1が必要ないだけです。代わりにArrayLengthを使用してください。

 static void Main(string[] args)
        {
            Console.WriteLine("enter array length ");
            int arraylength = Int32.Parse(Console.ReadLine());
            int[] AverageArray = new int[arraylength];


            for (int i = 0; i < AverageArray.Length; i++)
            {
                Console.Write("enter the numbers you wish to find the average for: ");
                AverageArray[i] = Int32.Parse(Console.ReadLine());

            }

            Console.WriteLine("here is your array: ");
            for (int i = 0; i < AverageArray.Length ; i++)
            {
                Console.WriteLine(AverageArray[i]);
            }

            Console.WriteLine("here is the result");
            Console.WriteLine(Calcs.FindAverage(AverageArray));
            Console.ReadLine();

        }
于 2012-09-24T12:35:37.553 に答える
1

Visual Studio C#(Sharp) では、 forループの前のコードの 2 番目のステートメントでエラーが発生すると思います。これは、配列がインデックス サイズに定数変数を使用しているためです。

        Console.WriteLine("enter array length ");
  const int arraylength = Int32.Parse(Console.ReadLine());
        int[] AverageArray = new int[arraylength];

また、Check Calcsは現在のコンテキストには存在しません。

于 2013-10-12T19:32:53.253 に答える