在不使用数组的情况下查找给定整数的第二大数量
Finding the second largest number of given integers without using array
使用 if 循环,我的任务是根据用户提供的数字将最大和第二大整数放入一对中,将最小和第二大整数放入一对中。
我尝试了几种不同的 if 条件,虽然我的程序可以正确找到第二个最小的整数,但如果我应用相同的逻辑(反向大于 than/smaller 的符号),我没有得到正确答案。
numN = keyboard.nextInt();
if (numN > numL1){
numL1 = numN;
}
if (numN < numS1){
numS1 = numN;
}
else if (numN < numS2 && numS2 > numS1){
numS2 = numN;
}
else if (numN > numL2 && numL2 < numL1){
numL2 = numN;
}
如果用户输入四个数字 1,2,3,4
实际结果:最大和最小对:(4,4) (1,2)
所需结果:最大和最小对:(4,3) (1,2)
您可以像下面这样操作:
int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE, min = Integer.MAX_VALUE, secondMin = Integer.MAX_VALUE;
int input = keyboard.nextInt();
if (input > max) {
secondMax = max;
max = input;
} else if (input > secondMax) {
secondMax = input;
}
if (input < min) {
secondMin = min;
min = input;
} else if (input < secondMin) {
secondMin = input;
}
使用 if 循环,我的任务是根据用户提供的数字将最大和第二大整数放入一对中,将最小和第二大整数放入一对中。
我尝试了几种不同的 if 条件,虽然我的程序可以正确找到第二个最小的整数,但如果我应用相同的逻辑(反向大于 than/smaller 的符号),我没有得到正确答案。
numN = keyboard.nextInt();
if (numN > numL1){
numL1 = numN;
}
if (numN < numS1){
numS1 = numN;
}
else if (numN < numS2 && numS2 > numS1){
numS2 = numN;
}
else if (numN > numL2 && numL2 < numL1){
numL2 = numN;
}
如果用户输入四个数字 1,2,3,4
实际结果:最大和最小对:(4,4) (1,2)
所需结果:最大和最小对:(4,3) (1,2)
您可以像下面这样操作:
int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE, min = Integer.MAX_VALUE, secondMin = Integer.MAX_VALUE;
int input = keyboard.nextInt();
if (input > max) {
secondMax = max;
max = input;
} else if (input > secondMax) {
secondMax = input;
}
if (input < min) {
secondMin = min;
min = input;
} else if (input < secondMin) {
secondMin = input;
}