如何在for循环中找到第二大的数
How to find the second largest number in for loops
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;
}
这是我的解决方案,使用来自 class Math:
的静态方法 max 和 min
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
int input, largest = 0, secondLargest = 0, smallest = 0;
for (int i = 0; i < 10; i++) {
System.out.println("Input an integer number:");
input = new Scanner(System.in).nextInt();
secondLargest = Math.min(largest, Math.max(input, secondLargest));
largest = Math.max(input, largest);
smallest = Math.min(input, smallest)
}
System.out.println("Largest integer number entered was: " + largest);
System.out.println("Second largest integer number entered was: " + secondLargest);
System.out.println("Smallest integer number entered was: " + smallest);
}
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int max = 0;
int smax = 0;
int num = 0;
while (num != -1) {
System.out.println("Enter number Or -1 to Stop:");
num = in.nextInt();
if (num >= max) {
smax = max;
max = num;
}
}
System.out.println("second max :"+smax);
}
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;
}
这是我的解决方案,使用来自 class Math:
的静态方法 max 和 min import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
int input, largest = 0, secondLargest = 0, smallest = 0;
for (int i = 0; i < 10; i++) {
System.out.println("Input an integer number:");
input = new Scanner(System.in).nextInt();
secondLargest = Math.min(largest, Math.max(input, secondLargest));
largest = Math.max(input, largest);
smallest = Math.min(input, smallest)
}
System.out.println("Largest integer number entered was: " + largest);
System.out.println("Second largest integer number entered was: " + secondLargest);
System.out.println("Smallest integer number entered was: " + smallest);
}
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int max = 0;
int smax = 0;
int num = 0;
while (num != -1) {
System.out.println("Enter number Or -1 to Stop:");
num = in.nextInt();
if (num >= max) {
smax = max;
max = num;
}
}
System.out.println("second max :"+smax);
}