如何将运行总数/计数器添加到C#控制台应用程序
我的应用程序将用户输入(保龄球分数)并将其平均值。我接触到的问题是允许用户随时停止的要求。我放置了10个int变量,并假设一个不会超过10的计算。我的问题是,如何保持总计/计数,以便如果用户只输入2个平均值,那么我只能除以2?谢谢你的帮助。如何将运行总数/计数器添加到C#控制台应用程序
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?
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变量将继续增加分数。
UPDATE for question asked;
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;
我曾经使用过这种方法,但是打算调用另一个类中的所有变量AND计数器来计算总数。我的问题是,其他班级将计数器值视为0,因为它是在班级之前分配的。有任何解决这个问题的方法吗? –
@TobyZ查看我刚添加的更新。 – Lavevel
使用List<int>
集合来存储的得分,然后要么
1)名单的计数财产分割的总和列表和分裂的价值观:
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();
自然使用所需的任何数据类型或转换来获得您所需要的精度级别。
您可以推入列表并使用Sum()和Average()扩展。要保持aceepting分数,您可以使用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();
您可以使用'List',然后除以Count。 – mrogers
使用一个集合('List')来保留任意数量的输入 –
maccettura