我正在尝试从输入序列中获取最大和最小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);
答案 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);
作为注释,我将min
和max
整数分别初始化为最大和最小整数值。这样可以确保我们正确捕获最开始的输入,无论它们是什么。
答案 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();