【问题标题】:how can I find the Min and Max with a for loop如何使用 for 循环找到最小值和最大值
【发布时间】:2022-01-12 15:43:24
【问题描述】:

嗨,我的代码有问题我正在尝试使用 for 循环找到植物的最小高度和植物的最大高度,但我遇到了问题,我无法解决(这在 C#顺便提一句) 代码:

int i;
double height, min, max;
Console.WriteLine("Insert the height of plant");
height = double.Parse(Console.ReadLine());
min = 0;
max = 0;
for (i = 1; i <= 9; i++)
{
    height = double.Parse(Console.ReadLine());
    if(height >= max)
    {
        height = max;
    }
    if(height < max)
    {
        height = min;
    }
}
Console.WriteLine("Maximum hight = {0}", max);
Console.WriteLine("Minimum hight = {0}", min);

【问题讨论】:

  • " 但我遇到了问题“ 问题是什么? =)
  • 同时尝试debug您的代码 - 这将帮助您找到导致问题的原因。
  • minmax 永远不会更改,因为您将它们与 height 反转。 X = YY 的值分配给X
  • 除了提到的其他麻烦之外,我看到您在其中一个 if 中测试 max 时设置了 min。
  • min = height;,不是height = min;

标签: c# for-loop minmax


【解决方案1】:

将您的起始minmax 调整为与初始输入相同。然后,当你循环时,比较这些值是大于还是小于当前的min/max

double height, min, max;
Console.WriteLine("Insert the height of plant");
height = double.Parse(Console.ReadLine());
min = height;
max = height;

for (int i = 1; i <= 9; i++)
{
    height = double.Parse(Console.ReadLine());

    if (height > max)
        max = height;
    if (height < min)
        min = height;
}
Console.WriteLine("Maximum hight = {0}", max);
Console.WriteLine("Minimum hight = {0}", min);

按照 Dmitry 的建议,您甚至可以将您的 for 循环减少到此,以简单地将较小/较大的数字返回到 min/max

for (int i = 1; i <= 9; i++)
{
    height = double.Parse(Console.ReadLine());

    max = Math.Max(max, height);
    min = Math.Min(min, height);
}

【讨论】:

  • max = Math.Max(max, height);
  • min = height; before 循环值得 +1
  • 感谢您的帮助,感谢 :)
猜你喜欢
  • 2018-09-21
  • 2016-08-05
  • 2019-09-18
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 2020-03-04
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多