Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果不使用c中的内置函数,如何获得投球手的最小和最大分数#_C#_Max_Min - Fatal编程技术网

C# 如果不使用c中的内置函数,如何获得投球手的最小和最大分数#

C# 如果不使用c中的内置函数,如何获得投球手的最小和最大分数#,c#,max,min,C#,Max,Min,我被困在如何获得分数的最小值和最大值上,因为我们不允许在我们的作业中使用内置函数,我得到了平均工作状态,而这些是我作业中唯一缺少的部分 double game average = 0 for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++) { gameAverage += (gameScores[gameCounter - 1] / NUMBER_OF_GAMES);

我被困在如何获得分数的最小值和最大值上,因为我们不允许在我们的作业中使用内置函数,我得到了平均工作状态,而这些是我作业中唯一缺少的部分

double game average = 0
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
    {
        gameAverage += (gameScores[gameCounter - 1] / NUMBER_OF_GAMES);
    }
双局平均值=0
对于(int gameCounter=1;gameCounter
在游戏中循环,就像在平均值中循环一样,但在循环之前,有一个变量,如
minScore
maxScore
,初始化为1或其他值。然后在循环中检查分数是否小于或大于最小值或最大值。如果是,则更新最小值/最大值

大概是这样的:

int min = gameScores[0]; 
for (int gameCounter = 1; gameCounter < gameScores.Length + 1; gameCounter++)
{
    if (gameScores[gameCounter] < min)
        min = gameScores[gameCounter];
}
int min=gameScores[0];
对于(int gameCounter=1;gameCounter
只需将最小值和最大值存储为第一个值,然后将下一个值与当前值进行比较

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);
}
如果不在此处添加1,则以后不必减去1

另外,比较字符串的最佳实践是使用
.equals()
因此:


通常,使用类似于
foreach(gameScores中的var score)
的代码在数组中循环比较容易,这些代码试图像你这样添加和减去索引。我不敢相信你的老师会让你使用
goto
…假设我递给你一张保龄球记分卡,让你确定最小值和最大值。请仔细描述您在不使用计算机的情况下是如何做到这一点的。如果你能做到这一点,那么你就可以描述计算机应该如何做到这一点。当我们看你的代码时:今天将是养成良好习惯的好日子,这样你以后就不必打破它们了。(1) 我们在C中不使用叫喊蛇的形式。这应该是
GameCount
NumberOfGames
。(2) 这是非常奇怪的设置一个循环,其中计数器关闭1,然后从中减去1来纠正这一点。更正常的做法是从0循环到length,而不是从1循环到length+1,然后从索引中减去1。(3)代码看起来是错误的。我假设游戏分数[I]是一个整数,游戏数是一个整数,但是整数除以整数就是整数,而不是双精度。更常见的解决方案是首先计算和,然后将和转换为双精度,然后将和除以游戏数,得到精确的双精度。您现在所做的是在添加之前进行四舍五入,而在添加之前进行四舍五入意味着您添加了错误的值,因此总和也将是错误的,因此平均值也将是错误的。我想您的意思是循环中的
gameCounter
?否则你每次都会出界谢谢你的帮助@DStanley,我刚刚从OP的问题中复制了代码,这个问题的作用是
+1
,因为他们从
1
开始循环。但是是的,如果你从
0开始(像大多数人一样),你是对的。谢谢你对我的帮助it@Joshua您可以通过单击答案左上角的绿色复选标记来感谢他人。
for (int gameCounter = 0; gameCounter < gameScores.Length; gameCounter++)
bowler.Equals("Y")