这是我写的代码
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时,我不明白为什么或如何使其正常运行?有人帮忙吗? 字幕说明:请不要报告问题,因为我正在寻找答案。
答案 0 :(得分:0)
您必须将这两个条件分开
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
并且您的代码不适用于负数