如何将运行总计/计数器添加到C#控制台应用程序

问题描述 投票:-1回答:3

我的应用程序正在接受用户输入(保龄球分数)并将其平均化。我要解决的问题是允许用户随时停止的要求。我放置了10个int变量并假设一个不会计算超过10个。我的问题是,如何保持运行总计/计数,这样如果用户只输入2个平均分数,那我只能除以2?谢谢你的帮助。

Console.WriteLine("Please input the score of game 1: ");
g1 = ReadLine();
game1 = int.Parse(g1);
Console.WriteLine("Would you like to add more scores? Press 'n' to continue to averaging, press any other key to continue!");
playagain = ReadLine();
if(playagain =="n")
{
    calculating(); 
}
Console.Clear();

这就是我编写程序的方式。我是否创建了一个变量,并在while语句中指定自己,以声明是否按下任何其他按钮(程序继续到游戏2的另一个用户输入),为变量添加1?

c# visual-studio oop object
3个回答
1
投票

使用List<int>集合来存储分数,然后使用

1)除以列表中值的总和除以列表的count属性:

var scores = new List<int>();
int total = 0;

foreach(var score in scores)
{
  total += score;
}

var average = total / scores.Count;

2)使用LINQ的.Average()方法快速获取列表中所有值的平均值:

var scores = new List<int>();
var average = scores.Average();

自然地使用所需的任何数据类型或转换来获得您需要/期望的准确度。


0
投票

您可以进入列表并使用Sum()和Average()扩展。要保持接受分数,您可以使用while循环

    Console.WriteLine("Please input the score of game 1: ");
    List<int> scores = new List<int>();
    int game1 = int.Parse(Console.ReadLine());
    scores.Add(game1);
    Console.WriteLine("Would you like to add more scores? Press 'n' to continue to averaging, press any other key to continue!");
    string playagain = Console.ReadLine();
    while(playagain != "n")
    {
        Console.WriteLine("Please input the score of next game: ");
        scores.Add(int.Parse(Console.ReadLine()));
        Console.WriteLine("Would you like to add more scores? Press 'n' to continue to averaging, press any other key to continue!");
        playagain = Console.ReadLine();
    }
    Console.WriteLine("Total is " + scores.Sum());
    Console.WriteLine("Average is " + scores.Average());
    Console.Clear();

0
投票
int count = 0; 
while(playagain != "n")
{
    Console.WriteLine("Please input the score of game 1: ");
    g1 = ReadLine();
    game1 += int.Parse(g1);
    count++;
    Console.WriteLine("Would you like to add more scores? Press 'n' to continue to averaging, press any other key to continue!");
    playagain = ReadLine();        
    Console.Clear();
}

count变量将保持输入数量的运行总数,game1变量将继续添加分数。

提出问题的更新;

class OtherClass{
   public int Counter {set; get;}
  .
  .//other logic
  .
}
OtherClass otherClass = new OtherClass();
int count = 0; 
while(playagain != "n")
{
    Console.WriteLine("Please input the score of game 1: ");
    g1 = ReadLine();
    game1 += int.Parse(g1);
    count++;
    Console.WriteLine("Would you like to add more scores? Press 'n' to continue to averaging, press any other key to continue!");
    playagain = ReadLine();        
    Console.Clear();
}
otherClass.Counter = count;
© www.soinside.com 2019 - 2024. All rights reserved.