问题是 :
编写一个程序,提示用户输入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)