2

したがって、入力された一連の数値から最小値と最大値を表示するものがあります。私は初心者であり、配列や並べ替えをまだ学習していないことに注意してください。

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            double number, maxValue= Double.MinValue , minValue= Double.MaxValue;
            string goOn = "Y";

            Console.WriteLine("Please enter a series of numbers, when you wish to stop entering numbers please enter -99.");
            Console.WriteLine("The smallest and largest values will then be displayed.");
            Console.WriteLine("Remember not to enter -99 unless you want the series to end.");
            do
            {
                while (!double.TryParse(Console.ReadLine(), out number))
                    Console.WriteLine("Please enter whole numbers only");

                while (number != -99)
                {
                    process(ref minValue, ref maxValue, number);

                    while (!double.TryParse(Console.ReadLine(), out number))
                        Console.WriteLine("Please enter whole numbers only");
                }
                Console.WriteLine("The smallest value is {0} and the largest value is {1}.", minValue, maxValue);
                Console.WriteLine("Do you want to enter another series of numbers?");
                Console.WriteLine("If so enter y, if you want to end press any other key");
                goOn = Console.ReadLine();
                if (goOn.ToUpper() == "Y")
                {
                    Console.WriteLine("Please enter your set of numbers.");
                    Console.WriteLine("Remember not to enter -99 unless you want the series to end.");
                }

            } while (goOn.ToUpper() == "Y");
        }
        static void process(ref double minValue, ref double maxValue, double number)
        {
            if (number > maxValue)
            {
                maxValue = number;
            }
            if (number < minValue)
            {
                minValue = number;
            }

        }
    }
}

しかし、一連の数字を入力してから停止し、別の数字のリストを作成すると、次のように前のリストの最小値と最大値が保持されます。

番号6、7、-7、3、5、100、44を示すコンソールの例。-7が最小値、100が最大値です。 次に、5、55、34の別のリストが作成されますが、-7が最小で、100が最大です。

また、私はこのような他の誰かのプログラムの自分のバージョンをやっていますが、maxValue=0とminValue=0を設定して彼がそれをどのように行うことができるか理解できません。彼はdoubleの代わりにInt64を使用し、代わりに3つのモジュールを使用しましたminValueとmaxValueが0の場合の1と別のifステートメント。

4

2 に答える 2

4

新しい順序で最小値と最大値を検索する必要がある場合は、以前に保存した値をクリアしてください。

if (goOn.ToUpper() == "Y")
{
    maxValue= Double.MinValue;
    minValue= Double.MaxValue;
    Console.WriteLine("Please enter your set of numbers.");
    Console.WriteLine("Remember not to enter -99 unless you want the series to end.");
}
于 2013-03-04T19:01:00.700 に答える
0

do-whileループの各反復の終了時に、の値maxValueをリセットすることはありません。minValueあなたはそれをしていないので、あなたのプログラムは以前に使用された番号を保持しています。

プログラムの最初の最後の行で、do-whileループが終了する前に、両方を設定したものにリセットする必要があります。

于 2013-03-04T18:58:50.637 に答える