【问题标题】:Unexpected output while trying to display the temperature closest to zero (java)尝试显示最接近零的温度时出现意外输出(java)
【发布时间】:2022-01-21 15:28:34
【问题描述】:
import java.util.*;
class Solution
{

    public static void main(String args[]) 
    {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int c=5526;
        int inp;
        for(int a=0;a<n;a++)
        {
            inp=sc.nextInt();
            if(Math.abs(inp)<c)
            {
                c=inp;
            }
        }
        System.out.print(c);
    }
}

输入:

错误:

我不知道问题出在哪里,我无法尝试任何事情,因为我什至不知道错误在哪里。

【问题讨论】:

标签: java if-statement conditional-statements


【解决方案1】:

这个问题没有正确提出,但是,我会尽量按照我的理解来回答。所以问题是当您运行程序时,您输入的输入方式错误,例如您输入了将要比较的温度数量,然后一个接一个地添加温度,在这种情况下,它不被接受为有效数字相反,它应该跟随 Enter。此外,您的代码没有产生正确的结果,您有一个逻辑错误。

【讨论】:

    【解决方案2】:

    我们要显示最接近0的温度,即绝对值最小的温度。呈现的代码已经非常接近。这一行只有一个小错误:

    if (Math.abs(inp) < c)
    

    我们将inp 的绝对值与c 的值进行比较。查看if 的主体,我们看到c 设置为inp 的值。 inp 的值可以是负数,因此c 可以是负数。回到if-条件:只要c 为负,Math.abs(inp) &lt; c 将始终评估为false。因此,我们还必须在条件中取c 的绝对值:

    if (Math.abs(inp) < Math.abs(c))
    

    Ideone demo

    这将产生预期的输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 2021-09-28
      相关资源
      最近更新 更多