我的代码要求用户输入三个数字,它应该显示您输入的第三个数字。我已经对此代码进行了至少一小时的故障排除,但无济于事。
import java.util.Scanner;
public class thirdLargest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int largest = 0;
int secondLargest = 0;
int thirdLargest = 0;
int counter = 0;
int number;
while (counter < 4) {
System.out.println("Enter a number");
number = input.nextInt();
if (number > largest) {
number = largest;
largest = secondLargest;
} else if (number > secondLargest) {
number = secondLargest;
secondLargest = thirdLargest;
} else if (number > thirdLargest) {
thirdLargest = number;
}
counter++;
}
System.out.println("Third largest number is " + thirdLargest);
}
}
这是输出
输入数字
99个
输入数字
88个
输入数字
77个
输入数字
66个
输入数字
55个
第三大数字是0处理完成,退出代码为0
答案 0 :(得分:0)
尝试
1)将用户输入存储在int
的ArrayList中2)使用Collection.Sort(yourList)
对数组进行排序3)打印列表中的第一个元素yourlist.get(0)
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int number;
ArrayList al = new ArrayList();
for(int i=0; i<3; i++){
System.out.println("Enter a number");
number=input.nextInt();
al.add(number);
}
Collection.Sort(al);
int largest= al.get(2) ;
int secondLargest= al.get(1);
int thirdLargest= al.get(0);
System.out.println("Third largest number is "+thirdLargest);
}
答案 1 :(得分:0)
我相信以下代码将使用您的逻辑,没有数组。虽然我没有运行它。
import java.util.Scanner;
public class thirdLargest {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int largest=0;
int secondLargest=0;
int thirdLargest=0;
int counter=0;
int number;
while(counter<4){
System.out.println("Enter a number");
number=input.nextInt();
if (number > largest){
thirdLargest = secondLargest;
secondLargest = largest;
largest = number;
}
else if (number > secondLargest){
thirdLargest = secondLargest;
secondLargest = number;
}
else if (number > thirdLargest){
thirdLargest = number
}
}
System.out.println("Third largest number is "+thirdLargest);
}