Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 掷硬币模拟器赢了';我不算正面和反面_C# - Fatal编程技术网

C# 掷硬币模拟器赢了';我不算正面和反面

C# 掷硬币模拟器赢了';我不算正面和反面,c#,C#,我正在尝试制作一个抛硬币模拟程序,它将根据用户输入的数字掷硬币数次。它将显示投币号码和正面或反面。然后它会显示有多少正面和反面被翻转,但它不会显示正确的次数,我不知道如何修复这个问题 任何帮助都将不胜感激 这是我到目前为止得到的 Console.Write("\n\n"); Console.Write("------------------------------------------------"); Console.WriteLine("\nThis Program simulates t

我正在尝试制作一个抛硬币模拟程序,它将根据用户输入的数字掷硬币数次。它将显示投币号码和正面或反面。然后它会显示有多少正面和反面被翻转,但它不会显示正确的次数,我不知道如何修复这个问题

任何帮助都将不胜感激

这是我到目前为止得到的

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);

在这里,您的代码中有一些细节,我对所做的更改进行了注释,以便您能够理解这个想法

        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();
Console.Write(“\n\n”);
Console.Write(“------------------------------------------------------------”);
WriteLine(“\n此程序模拟多次抛硬币”);
Console.Write(“------------------------------------------------------------”);
控制台。写入(“\n\n”);
int头=0,尾=0;
int compChoice=0;
智力测验;
随机rnd=新随机();
控制台。WriteLine(“抛了多少硬币?”);
int cointoschoice=int.Parse(Console.ReadLine());
//每次掷骰的计数器是“尝试”
尝试次数=1;
做
{
//compChoice是随机包含0或1的抛硬币
compChoice=rnd.Next(0,2);
if(compChoice==0)
{
Console.WriteLine(“投掷号码”#“+尝试次数);
Console.WriteLine(“\nHeads”);
Heads++;
}
else if(compChoice==1)
{
Console.WriteLine(“投掷号码”#“+尝试次数);
Console.WriteLine(“\nTails”);
Tails++;
}
//增量尝试
尝试++;
//按用户要求的次数循环

}while(尝试)从不更改
compChoice
的值。在程序开始时为其分配一个随机数,但从不调用
rnd.Next()
再次在循环中。另外,
尝试==cointoschoice
的目的是什么?您希望循环体运行
cointoschoice
多次,但随后您会阻止循环体,因此它只执行一次,而且您也永远不会更改尝试次数。您需要在零开始尝试,因为没有尝试尚未完成。然后,对于每次尝试,获取一个新的随机数,并确定它是正面还是反面。之后,在每次尝试中,将一个添加到
尝试中,以跟踪已完成的尝试数。如果循环中有
则去掉该
。此外,为什么要复制行
控制台。WriteLine(“抛出数字”+尝试数)
在每个
if/else
块中?只需在
if
语句之前执行一次,保留您的代码