问题是 :


  编写一个程序,提示用户输入5个数字并找到
  其中两个最大的值。如果用户输入的数字大于100
  或小于– 100,程序应退出。

Hint: use break.



我的代码是:

import java.util.*;

public class q2 {
    static Scanner scan = new Scanner (System.in);
    public static void main (String[] args ) {

        int num;
        int max=0;//define Maximum value and save it in variable max = 0;
        int secondMax=0;//define the second maximum value and save it in variable secondMax = 0;

        System.out.println("Please , Enter 5 numbers between 100 and -100 "); //promet user to enter 5 numbers with the condition

        for (int count=0 ; count<5 ; count++) // start loop with (for)
        {
            num = scan.nextInt();//user will enter number it will be repeated 5 times .

            if( num > 100 || num<-100) //iv the user enter a number less than -100 or geater than 100 program will quit from loop
            {
                System.out.println("The number you have entered is less than -100 or greater than 100 ");//telling the user what he did
                break;//End the loop if the condition ( num > 100 || num<-100) is true .
            }
            if(num>max )//Another condition to find the maximum number
                max = num;//if so , num will be saved in (max)

            if (num >= secondMax && num < max)// A condition to find the second Maximum number
                secondMax = num;//And it will be saved in (secondMax)
        }//End loop
        System.out.println("The largest value is " + max); //Print the largest number
        System.out.println("The second largest value is " + secondMax );//print the second largest number .
    }//End main

}//End class


这是我的代码输出:

Please , Enter 5 numbers between 100 and -100
20
30
60
20
-10
The largest value is 60
The second largest value is 20


第二大数字不正确-20,而不是30。我做错了什么?

最佳答案

 if(num>max )//Another condition to find the maximum number
 secondMax = max;
  max = num;//if so , num will be saved in (max)

 else if (num >= secondMax)// A condition to find the second Maximum number
 secondMax = num;//And it will be saved in (secondMax)

10-04 17:43