0

コンテナーのレイヤー数とその直径をユーザーから入力するプログラムを作成する必要があります。次に、ユーザーは特定の直径のディスクをプログラムに挿入します。次に、ディスクは可能なすべてのレイヤーを通過します。コンテナーがいっぱいになるか、ユーザーがディスクを追加するのをやめるまで、このプロセスを繰り返すことができます。最後に、プログラムは、コンテナーに含まれるディスクの総数とそれらのレイヤー番号を提供することになっています。私はひどく立ち往生しており、私の心は今空白です。助けてください!

[更新されたコード] コンテナがいっぱいにならず、プログラムがディスクを挿入し続けるという問題が残っています。コンテナがいっぱいになったことを知らせる論理的な方法は考えられません。

  namespace ConsoleApplication1
  {
  class Program
   {
     static void Main(string[] args)
     {
        Console.Write("Number of Layers ? ");
        int layers = int.Parse(Console.ReadLine());
        int[] container = new int[layers];
        int disk_number = 0;
        for (int i = 0; i < layers; i++)
        {
            Console.Write("\nLayer num {0} : ",1+i);
            container[i] = int.Parse(Console.ReadLine());
        }

        Console.Write("\nPress 1 to Insert disk? ");
        int insert = int.Parse(Console.ReadLine());

        while (insert == 1)
        {
            Console.Write("\nDiameter of Disk? ");
            int disk_diameter = int.Parse(Console.ReadLine());


           if (disk_diameter <= container[0])
            {

                for (int i = 0; i < layers;) {
                    if (disk_diameter <= container[i])
                    {
                        i++;
                    }
                    else { if (i == layers - 1) break; layers = i+1; }

                }

                disk_number++;

                Console.Write("\nPress 1 to Insert more disk(s)? ");
                insert = int.Parse(Console.ReadLine());
                if (insert != 1) { Console.Write("\nNumber of disks contained in container are : {0}", disk_number); }
            }
            else
            {
                Console.Write("\nDisc blocked the surface opening of the container , no further input could be processed! \nNumber of disks contained in container are : {0}",disk_number);
                break;
            }
        }

        Console.ReadLine();



    }

    //static int inserting_disk(int a);
}
}
4

1 に答える 1