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