【发布时间】:2020-03-09 16:35:20
【问题描述】:
我被困在如何获得分数的最小值和最大值上,因为我们不允许使用内置函数来完成我们的作业,我的平均工作良好,这些是我作业中唯一缺少的部分。
double game average = 0
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
{
gameAverage += (gameScores[gameCounter - 1] / NUMBER_OF_GAMES);
}
【问题讨论】:
-
使用
foreach (var score in gameScores)之类的代码在数组中循环通常更容易,就像您正在做的那样尝试添加和减去索引。 -
我不敢相信你的老师让你使用
goto... -
假设我递给您一张保龄球记分卡,并要求您确定最小值和最大值。 仔细描述你将如何在不使用计算机的情况下做到这一点。如果你能做到这一点,那么你就可以描述计算机应该如何做到这一点。
-
当我们查看您的代码时:今天将是养成好习惯的好日子,这样您以后就不必再打破它们了。 (1) 我们在 C# 中不使用 SHOUTING_SNAKE_FORM。那应该是
GameCount或NumberOfGames。 (2) 在计数器减一的情况下设置一个循环,然后从中减去 1 来纠正这个问题,这是非常奇怪的。更正常的做法是从 0 循环到 length,而不是从 1 循环到 length + 1,然后从索引中减去 1。 -
(3) 你的代码看起来不对。我假设 gamescores[i] 是一个 int 并且游戏数是一个 int,但是 int 除以 int 是 int,而不是 double。更常见的解决方案是先计算总和,然后将总和转换为双倍,然后将总和除以游戏数,以获得准确的双倍。你现在做的是加前四舍五入,加前四舍五入意味着你加了错误的值,所以总和也是错误的,因此平均值也是错误的会错的。