繁体   English   中英

在不使用 c# 中的内置 function 的情况下,如何获得保龄球的最低和最高分数

[英]How would I get the Min and Max scores of the bowlers without using the built in function in c#

我被困在如何获得分数的最小值和最大值,因为我们不允许使用内置的 function 来完成我们的作业,我的平均工作良好,这些是我作业中唯一缺少的部分。

double game average = 0
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
    {
        gameAverage += (gameScores[gameCounter - 1] / NUMBER_OF_GAMES);
    }

只需将最小值和最大值存储为第一个值,并将下一个值与当前值进行比较

double gameMin = Double.MaxValue;
double gameMax = Double.MinValue;
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
{
  gameMin = gameMin > gameScores[gameCounter - 1] ? gameScores[gameCounter - 1] : gameMin
  gameMax = gameMax < gameScores[gameCounter - 1] ? gameScores[gameCounter - 1] : gameMax
  gameAverage += (gameScores[gameCounter - 1] / NUMBER_OF_GAMES);
}

? 是 c# 中的运算符,可以像我上面那样快速编写 if 语句。

请参阅: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator

但是,在您的代码中,您还可以像这样清理 for 循环定义:

for (int gameCounter = 0; gameCounter < gameScores.Length; gameCounter++)

此处不加 1 时,以后不必减去 1

比较字符串的最佳实践也是使用.equals() ,如下所示:

bowler.Equals("Y")

就像你为平均所做的那样循环游戏,但在你循环之前,有一个变量,比如minScoremaxScore ,你初始化为 1 或其他东西。 然后在循环中检查分数是否小于或大于最小值或最大值。 如果是,请更新最小值/最大值。

像这样的东西:

int min = gameScores[0]; 
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
{
    if (gameScores[gameCounter] < min)
        min = gameScores[gameCounter];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM