C# 返回平均值,非常简单的C代码

C# 返回平均值,非常简单的C代码,c#,C#,我在树屋做这个挑战,我不明白为什么我在输入“完成”时会得到“Nan”。我猜这是因为它试图除法,但我不明白为什么它保持在0。无论如何,这是我到目前为止的代码: using System; namespace averager { class Program { static void Main() { var numberTotal = 0.0; var entryNumber = 0.0;

我在树屋做这个挑战,我不明白为什么我在输入“完成”时会得到“Nan”。我猜这是因为它试图除法,但我不明白为什么它保持在0。无论如何,这是我到目前为止的代码:

using System;

namespace averager
{
    class Program
    {
        static void Main()
        {
            var numberTotal = 0.0;
            var entryNumber = 0.0;
            var average = (numberTotal/entryNumber);

          while(true)
          {
            // Prompt user to enter a number or enter "done" to see the average
            Console.Write("Enter a number or type \"done\" to see the average: ");
            var entry = Console.ReadLine();


            if(entry.ToLower() == "done")
            {
              Console.WriteLine("The average is: " + average);
              break;
            }
            try
            {


              var number = double.Parse(entry);
              numberTotal += + number;
              entryNumber += + 1.0;

            }
            catch(FormatException)
            {
              Console.WriteLine("That is not a valid input");
              continue;
            }

          }

        }
    }
}
您在程序开始时设置了平均值,但在用户输入值后从未实际设置。如果更改上述行以实际运行计算:

Console.WriteLine("The average is: " + numberTotal/entryNumber);
您将看到预期的结果

您在程序开始时设置了平均值,但在用户输入值后从未实际设置。如果更改上述行以实际运行计算:

Console.WriteLine("The average is: " + numberTotal/entryNumber);

您将看到预期结果

平均值是在变量更改之前计算的,并且仍然为零。再也不会计算平均值了。读入新值后,应再次计算平均值。

平均值是在变量更改之前计算的,并且仍然为零。再也不会计算平均值了。读入新值后,应再次计算平均值。

看!您刚刚分配了avegare一次:

从那以后就不要再改变了:

 var number = double.Parse(entry);
 //what do you mean by unary + here?
 numberTotal += + number;
 //what do you mean by unary + here? 
 entryNumber += + 1.0;

 // average is NOT updated
最后,输出初始的
平均值
,即
NAN

  Console.WriteLine("The average is: " + average);
添加
平均值
计算

 var number = double.Parse(entry);
 numberTotal += number;  
 entryNumber += 1.0;

 //TODO: do not forget to change average
 average = numberTotal / entryNumber;

看!您刚刚分配了avegare一次:

从那以后就不要再改变了:

 var number = double.Parse(entry);
 //what do you mean by unary + here?
 numberTotal += + number;
 //what do you mean by unary + here? 
 entryNumber += + 1.0;

 // average is NOT updated
最后,输出初始的
平均值
,即
NAN

  Console.WriteLine("The average is: " + average);
添加
平均值
计算

 var number = double.Parse(entry);
 numberTotal += number;  
 entryNumber += 1.0;

 //TODO: do not forget to change average
 average = numberTotal / entryNumber;

0.0/0.0为NAN。您对
average
的第一个赋值为
NAN
,并且是代码中的单个赋值。通过更改这两个变量numberTotal+=+number;入口编号+=+1.0;它应该更改平均值?0.0/0.0为NAN。您的
平均值
的第一个赋值为
NAN
,并且是代码中的单个赋值。通过更改这两个变量numberTotal+=+number;入口编号+=+1.0;它应该改变平均值吗?