java - 如何在for循环中找到第二大的数

标签 java for-loop

public static void main(String[] args) {
    int num;
    int large;
    int small;
    int secondLarge;

    Scanner scan = new Scanner(System.in);
    System.out.print("Input a number: ");
    num = scan.nextInt();
    large = num;
    small = num;
    secondLarge = num;

    for (int x = 9; x > 0; x--) {
        System.out.print("Enter " + x + " more number: ");
        num = scan.nextInt();

        if (num > large) {
            large = num;

        }
        if (num > secondLarge) {
            secondLarge = num;
        }

        if (secondLarge > large) {
            large = secondLarge;

        }
        if (num < small) {
            small = num;

        }

    } System.out.println( large + " is the largest number, " + secondLarge + " is the second largest number and " + small + " is the smallest number!");
}

因此,我尝试输出最大数、第二大数和最小数。我能够获得最小和最大的,但不知道从哪里开始获得第二大的。我认为这会起作用,但它输出同样大的东西。我目前不应该使用数组,因为这是家庭作业。请不要告诉我确切的答案,但一些帮助和提示会很棒!

最佳答案

像这样初始化变量

int largest=0;
int secondlargest=0;
int smallest=Integer.MAX_VALUE;

条件应该是这样的

if(number>=largest){
    secondlargest=largest;
    largest=number;
}else if(number>secondlargest){
    secondlargest=number;
}
if(number<smallest){
    smallest=number;
}

关于java - 如何在for循环中找到第二大的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757536/

相关文章:

Java MVP - 不持有 Presenter 对象的引用?

java - 如何在 Android 中简单地为 View 添加动画效果

javascript - Three.js 为什么使用 for 循环而不是 while

javascript - i 没有在 while 循环中定义

javascript - 迭代二维 json 的正确方法

syntax - 有人可以为我解释一下吗 - for (int i = 0; i < 8; i++)

java - Android 蓝牙设备 UUID

java - 如何使用 JAX-WS 2.0 模拟 SOAP 响应?

python - 在迭代中丢失两个文本文件中的行

java - 解析 csv,不要在单引号或双引号内分割