抛硬币模拟器不会计算正面和反面

时间:2019-10-14 16:45:53

标签: c#

我正在尝试制作一个抛硬币模拟器程序,该程序将根据用户输入的数字多次抛硬币。它将显示投币数和正面或反面。然后它将显示翻转了多少头和尾巴,但是没有显示正确的次数,我不确定如何解决此问题

任何帮助将不胜感激

这是我到目前为止所得到的

Console.Write("\n\n");
Console.Write("------------------------------------------------");
Console.WriteLine("\nThis Program simulates tossing a coin mutliple times");
Console.Write("------------------------------------------------");
Console.Write("\n\n");

int Heads = 0, Tails = 0;
int compChoice = 0;

int attempts;                       
Random rnd = new Random();
Console.WriteLine("How many coin tosses?");
coinTossChoice = int.Parse(Console.ReadLine());
attempts = coinTossChoice;
compChoice = rnd.Next(0, 2);

do
{


    if (attempts == coinTossChoice)
    {
        if (compChoice == 0)
        {
            Console.WriteLine("Toss Number# ");
            Console.WriteLine("\nHeads");
            Heads++;
        }
        else if (compChoice == 1)
        {
            Console.WriteLine("Toss Number# ");
            Console.WriteLine("\nTails");
            Tails++;
        }                                                                 
    }
} while (attempts != coinTossChoice);
Console.WriteLine("\nNumber of Heads {0} Number of Tails {1} .", Heads, Tails);

1 个答案:

答案 0 :(得分:1)

在这里,您的代码中有一些细节,我评论了所做的更改,以便您理解这个主意。

        Console.Write("\n\n");
        Console.Write("------------------------------------------------");
        Console.WriteLine("\nThis Program simulates tossing a coin mutliple times");
        Console.Write("------------------------------------------------");
        Console.Write("\n\n");

        int Heads = 0, Tails = 0;
        int compChoice = 0;

        int attempts;
        Random rnd = new Random();
        Console.WriteLine("How many coin tosses?");
        int coinTossChoice = int.Parse(Console.ReadLine());
        //attempts is the counter for each toss
        attempts = 1;


        do
        {
            //compChoice is the coin toss containing 0 or 1 at random
            compChoice = rnd.Next(0, 2);
            if (compChoice == 0)
            {
                Console.WriteLine("Toss Number# " + attempts);
                Console.WriteLine("\nHeads");
                Heads++;
            }
            else if (compChoice == 1)
            {
                Console.WriteLine("Toss Number# " + attempts);
                Console.WriteLine("\nTails");
                Tails++;
            }
        //increment attempt
        attempts++;
        //cycle as many times as the user requested
        } while (attempts <= coinTossChoice);
        Console.WriteLine("\nNumber of Heads {0} Number of Tails {1} .", Heads, Tails);
        Console.ReadKey();