Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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# - Fatal编程技术网

C# 试图从给定的输入中找出最大的负值和最小的正值

C# 试图从给定的输入中找出最大的负值和最小的正值,c#,C#,我正在尝试建立一个算法,输入是10个数字(正数和负数),输出是最小的正数和最大的负数。 对于最小的肯定,我得到了正确的答案,但对于最大的否定,我得不到正确的答案。 插入代码和输出 if (num>negMax) 这种情况下有一个错误。由于初始negMax值为0,因此不会有负数满足条件,因此negMax值将永远不会更新 这种情况下有一个错误。由于您的初始negMax值为0,没有负数将满足条件,因此negMax值将永远不会更新。您正在将negMax初始化为0 没有大于0的负数 根据您想要

我正在尝试建立一个算法,输入是10个数字(正数和负数),输出是最小的正数和最大的负数。 对于最小的肯定,我得到了正确的答案,但对于最大的否定,我得不到正确的答案。 插入代码和输出

if (num>negMax)

这种情况下有一个错误。由于初始negMax值为0,因此不会有负数满足条件,因此negMax值将永远不会更新


这种情况下有一个错误。由于您的初始negMax值为0,没有负数将满足条件,因此negMax值将永远不会更新。

您正在将
negMax
初始化为0

没有大于0的负数

根据您想要完成的具体任务,您可以执行以下操作之一:

  • negMax
    初始化为
    int.MinValue
如果保证至少有一个负数,这就可以了,因为第一个负输入保证等于或大于。如果不能保证负输入,则无法判断是否存在负输入,并且输出可能最终不正确

  • 修改将新值分配给
    negMax
如果(num>negMax | | negMax>=0),则可以修改将新值分配给
negMax
的条件

由于您通常不将0视为负数(如果将其视为负数,则可以使用任何正数来初始化
negMax
),因此如果输出结果为0,您就会知道没有负数

要对
posMin
执行相同的操作,必须将其初始化为小于0的值,并相应地调整if条件,以便为该变量赋值

或者,您也可以将
negMax
posMin
声明为
int?
s,并检查是否为null,而不是
=0


如果选择这种方式,您可以检查变量和输出的值,例如,没有输入负数或正数,而不是输出您选择的占位符。

您正在将
negMax
初始化为0

没有大于0的负数

根据您想要完成的具体任务,您可以执行以下操作之一:

  • negMax
    初始化为
    int.MinValue
如果保证至少有一个负数,这就可以了,因为第一个负输入保证等于或大于。如果不能保证负输入,则无法判断是否存在负输入,并且输出可能最终不正确

  • 修改将新值分配给
    negMax
如果(num>negMax | | negMax>=0),则可以修改将新值分配给
negMax
的条件

由于您通常不将0视为负数(如果将其视为负数,则可以使用任何正数来初始化
negMax
),因此如果输出结果为0,您就会知道没有负数

要对
posMin
执行相同的操作,必须将其初始化为小于0的值,并相应地调整if条件,以便为该变量赋值

或者,您也可以将
negMax
posMin
声明为
int?
s,并检查是否为null,而不是
=0


如果选择这种方式,您可以检查变量和输出的值,例如,没有输入负数或正数,而不是输出您选择的占位符。

如果您有一个集合,例如,
int[]numbers
,您可以在Linq的帮助下查询它:

让我们打印出这些值:

Console.WriteLine(
  $"Biggest negative: {(biggestNegative == 0 ? "???" : biggestNegative.ToString())}");

Console.WriteLine(
  $"Smallest positive: {(smallestPositive == 0 ? "???" : smallestPositive.ToString())}"); 

如果您有一个集合,比如,
int[]numbers
,您可以借助Linq查询它:

让我们打印出这些值:

Console.WriteLine(
  $"Biggest negative: {(biggestNegative == 0 ? "???" : biggestNegative.ToString())}");

Console.WriteLine(
  $"Smallest positive: {(smallestPositive == 0 ? "???" : smallestPositive.ToString())}"); 

请将代码添加到问题中,不是作为图像,而是作为文本。您应该复制粘贴代码并将其输出到问题中。格式很好。这样问题就包含了所有没有外部链接的内容,人们可以复制粘贴它。欢迎使用So。在这里复制代码比链接到显示代码的图像要好。请看,您可以尝试Linq:
intbiggestnegative=numbers.Where(x=>x<0.Max();int smallestPositive=numbers.Where(x=>x>0).Min()
@DmitryBychenko如果集合中没有负数,这不会引发异常吗?请将代码添加到问题中,而不是作为图像,而是作为文本。您应该复制粘贴代码并输出到问题中。格式很好。这样问题就包含了所有没有外部链接的内容,人们可以复制粘贴它。欢迎使用So。在这里复制代码比链接到显示代码的图像要好。请看,您可以尝试Linq:
intbiggestnegative=numbers.Where(x=>x<0.Max();int smallestPositive=numbers.Where(x=>x>0).Min()
@DmitryBychenko如果集合中没有负数,这不会引发异常吗?那么这不是条件,而是起始值。它应该是int.MinValue。另外:这里完全忽略的是,如果没有负元素,那不是条件,而是起始值。它应该是int.MinValue。另外:这里完全忽略的是,如果没有负面因素会怎么样?这就是它不起作用的原因。你将如何解决这个问题?@Fildor这很难回答,因为它没有具体说明在没有负数、正数甚至没有数字的情况下应该发生什么。你说得对,我应该补充一点,这就是为什么它不起作用。你将如何解决这个问题?@Fildor这很难回答,因为它没有指定在没有否定的情况下应该发生什么
Console.WriteLine(
  $"Biggest negative: {(biggestNegative == 0 ? "???" : biggestNegative.ToString())}");

Console.WriteLine(
  $"Smallest positive: {(smallestPositive == 0 ? "???" : smallestPositive.ToString())}");