如何在不包括上一场比赛的情况下计算平均值。我不想包含最后一个游戏来结束用户需要输入-1的循环。因此,当用户输入-1时,此游戏将被包括在平均值中,那么结束游戏不应该以此为准,而不是实际得分。有办法解决吗?
while (points != -1)
{
total = total + points;
game++;
cout << "Enter the points for game " << game << ": ";
cin >> points;
average = total / game;
}
cout << "\nThe total points are " << total << endl;
cout << "\n The average points are " << average << endl;
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
要准确地说出您想要什么有点困难,部分原因是基于描述和缺少的代码。我假设-1的意思是“停止循环”
这是我认为您要寻找的:
game = 0;
total = 0;
while (1) {
++game;
cout << "Enter the points for game " << game << ": ";
cin >> points;
if (points == -1)
break;
total = total + points;
}
game -= 1;
if (game > 0)
average = total / game;
else
average = 0;
cout << "\nThe total points are " << total << endl;
cout << "\n The average points are " << average << endl;
system("PAUSE");
return 0;
答案 1 :(得分:0)
如果将总和减为-1,您可以先测试点,然后将其除以-1:
while (points != -1)
{
total = total + points;
game++;
cout << "Enter the points for game " << game << ": ";
cin >> points;
if(points==-1){
game--;}
average = total / game;
}
cout << "\nThe total points are " << total << endl;
cout << "\n The average points are " << average << endl;
system("PAUSE");
return 0;
}
答案 2 :(得分:0)
while (points != -1) // <--3
{
total = total + points;
game++;
cout << "Enter the points for game " << game << ": "; // <--1
cin >> points;
average = total / game; // <--2
}
我标记了操作顺序。问题在于您要在检查“ -1”后添加要平均的点。
while (temp != -1)
{
total = total + points;
cout << "Enter the points for game " << game << ": ";
cin >> temp;
if(temp != -1)
{
game++;
points = temp;
average = total / game;
}
}
我添加了一个变量来临时保存要检查的输入值,然后再修改要平均的主要变量。