C#中简单的程序数学程序

时间:2014-09-30 16:44:42

标签: c# average

所以我在C#(我的第一个)中创建了一个非常简单的程序。 它应该做一个平均的X数字..而不是手动写出来,它会在程序上做得更好(我不确定这是不是一个字)。基本上我已经完成了“数量”的工作。在下面的例子中。我可以把它除以2(在这种情况下)。但相反,我有一个随每个新条目而增加的变量 - 所以无论有多少条目,程序都可以工作。

我需要对变量' first',' second'进行同样的操作。我需要一些可根据条目数动态变化的变量。这应该是算法上的和平蛋糕,但这是我用C#的第一天,我无法做到这一点(因为我缺乏语法知识)。

        double first;
        double second;
        int amount = 0;
        double result;

        Console.Write("Write your first number");
        first = int.Parse(Console.ReadLine());
        ++amount; 

        Console.Write("Write your second number");
        second = int.Parse(Console.ReadLine());
        ++amount;

        result = (first + second) / amount;

        Console.Write("The average of your numbers is: " + result);

由于

2 个答案:

答案 0 :(得分:1)

这是我想你想要的主旨。我将使用伪代码让您有机会学习C#:

create a list of numbers
output prompt
read input line

while the input line had a value
  parse the input value
  add the parsed value to the list of numbers
  output prompt
  read input line

calculate the sum of the values divided by the length of the list
output the calculated average

答案 1 :(得分:0)

我认为你是在重复平均后?

class Program
{
    static void Main(string[] args)
    {
        //Compute Average Recursively:

        int average_count = 0;
        double average = 0;

        average = RecursiveAverage(average, ref average_count, 1);
        average = RecursiveAverage(average, ref average_count, 2);
        average = RecursiveAverage(average, ref average_count, 3);
        average = RecursiveAverage(average, ref average_count, 4);

        Console.WriteLine(average); //2.5
    }

    private static double RecursiveAverage(double previous, ref int average_count, double next)
    {
        average_count += 1;
        return ((average_count - 1.0) / (average_count)) * previous + (1.0 / (average_count)) * next;
    }

}

请参阅:http://people.revoledu.com/kardi/tutorial/RecursiveStatistic/Time-Average.htm

更新:不断更新平均值(或直到average_count变得太大而无法存储BigInteger),而不必记住所有数字......

while (true)
{
    var next = int.Parse(Console.ReadLine());
    average = RecursiveAverage(average, ref average_count, next);
    Console.WriteLine("Average is now: " + average); 
}