没有数组的序列中的最大最小ODD数

时间:2018-07-15 09:33:48

标签: java

我正在尝试从输入序列中获取最大和最小ODD数而不使用数组,请告知我应该添加什么,我正在使用以下代码:

System.out.print("Enter odd integers(even to Stop): " );

do {
    num = input.nextInt();
    sum += num;
} while (num % 2 != 0);

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

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

2 个答案:

答案 0 :(得分:2)

检查奇数值(可能将其记录为最小值或最大值)的逻辑应在循环内

int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;

int num = input.nextInt();

while (num % 2 != 0) {
    sum += num;

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

    num = input.nextInt();
}

System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);

作为注释,我将minmax整数分别初始化为最大和最小整数值。这样可以确保我们正确捕获最开始的输入,无论它们是什么。

答案 1 :(得分:-1)

这将起作用。如果没有给出奇数,则min和max将为0:

Scanner input = new Scanner(System.in);
int num = 0, sum = 0, max = 0, min = Integer.MAX_VALUE;
System.out.print("Enter odd integers(even to Stop): ");
do {
    num = input.nextInt();
    if (num < min) {
        min = num;
    }
    if (num > max) {
        max = num;
    }
    sum += num;
} while (num % 2 != 0);
if(min % 2 == 0) min = 0;
if(max % 2 == 0) max = 0;
System.out.print("Minimum Odd Number: " + min + ";");
System.out.println("Maximum Odd Number: " + max);
System.out.print("Sum: " + sum);
input.close();