1

私は現在、人の名前と5つの変数を取るプログラムを書いています。次に、これらの 5 つの変数を使用して、平均/サンプル分散を見つけることを任されています。私の現在のコードは次のとおりです。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace ConsoleApplication1
    {
        class Program
        {
        static void Main(string[] args)
        {
            string userName = "";
            string variables = "";
            int[] vars = parseVariableString(variables);
            vars = new int[5];
            int sum = 0;

            Console.Write("Please enter your name: ", userName);
            userName = Console.ReadLine();
            Console.ReadLine();
            Console.Write("Please enter 5 numbers with a space or coma inbetween: ", vars);

            for (int i = 0; i < vars.Length; i++)
            {
                int number = vars[i];
                sum += number;
            }
            float avg = sum/(float)vars.Length;
            float variance = 0;
            for (int i = 0; i < vars.Length; i++)
            {
                int number = vars[i];
                float f = number - avg;
                variance += (float)Math.Pow(f, 2);
            }
            float sv = variance / (vars.Length - 1);

            Console.Write(" Your name is: ", userName);
            Console.ReadLine();
            Console.Write("The average of your numbers is: ", avg);
            Console.ReadLine();
            Console.Write("The sample variance of your numbers is: ", sv);
            Console.ReadKey();
        }

        private static int[] parseVariableString(String variables)
        {
            String[] varArray = variables.Split(' ', ',');
            int[] intArray = new int[varArray.Length];

            for (int i = 0; i < varArray.Length; i++)
            {
                String variable = varArray[i];
                int integer = Convert.ToInt32(variable);
                intArray[i] = integer;
            }
            return intArray;
        }
    }
}

私は取得しています

入力文字列の形式が正しくありませんでした

でエラーint integer = Convert.ToInt32(variable);。なぜこのエラーが発生するのか正確にはわかりません。多くの人が int.parse を使用すると言っていますが、変数がそれに関連付けられた値があることを認識しないため、私が読んだことから、これが得られます。どんな助けでも大歓迎です。

4

1 に答える 1

6
    string variables = "";
    int[] vars = parseVariableString(variables);

空の文字列を宣言してから、その文字列を int に変換しようとしています。

private static int[] parseVariableString(String variables)
{
    String[] varArray = variables.Split(' ', ',');
    int[] intArray = new int[varArray.Length];

    for (int i = 0; i < varArray.Length; i++)
    {
        String variable = varArray[i];
        int integer = Convert.ToInt32(variable);
        intArray[i] = integer;
    }
    return intArray;
}

空の文字列を渡す場合と同様に、分割するものがないため、配列は空になります。

于 2013-03-01T18:36:13.383 に答える