【问题标题】:Lagest and Smallest number Java console application.Why the console returns 2147483647?最大和最小数字 Java 控制台应用程序。为什么控制台返回 2147483647?
【发布时间】:2020-03-20 12:00:02
【问题描述】:

这是我正在写的代码

public class School1 {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int sum = 0;
    int sum1 = 0;
    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;
    int max1 = Integer.MIN_VALUE;
    int min1 = Integer.MAX_VALUE;

    for (int i = 0; i < n; i++) {
        int num = scan.nextInt();
        if(num % 2 == 1) {
            sum += num;
            if (num > max) {
                max = num;
            } else if (num < min) {
                min = num;
            }
        }else if(num % 2 == 0){
            sum1 += num;
            if (num > max1) {
                max1 = num;
            } else if (num < min1) {
                min1 = num;
            }
        }
    }
    System.out.println("OddSum =" + sum);
    System.out.println("OddMin = " + min);
    System.out.println("OddMax = " + max);
    System.out.println("EvenSum =" + sum1);
    System.out.println("EvenMin = " + min1);
    System.out.println("EvenMax = " + max1);
}
}

这是一本书中的练习,我必须编写一个控制台应用程序,它接受“n”个数字并返回偶数最大值和奇数最大值、偶数最小值和奇数最小值、偶数和奇数
那么代码运行并且一切正常但是当控制台返回 EvenMin 或 OddMin = 2147483647 我不明白为什么或如何让它正常运行?有人帮忙吗? post-caption:请不要报告这个问题,因为我正在寻找答案。

【问题讨论】:

  • 尝试删除 else 至少。例如,如果您连续输入较大的数字,则不会执行 min 部分。
  • 另外,如果没有输入赔率和/或偶数,您希望它打印什么?
  • @JohnnyMopp 是正确的,删除​​ else 语句,只需要两个 if 语句。
  • 好的,谢谢,我现在试试
  • 感谢问题已经解决了!

标签: java console-application


【解决方案1】:

你必须将这两个 if 条件分开

if (num > max) {
    max = num;
} 
if (num < min) {
    min = num;
}

您的代码不适用于负数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2013-02-11
    • 1970-01-01
    相关资源
    最近更新 更多