【发布时间】: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 语句。
-
好的,谢谢,我现在试试
-
感谢问题已经解决了!