java语言从键盘中接收用户输入的10个数值,输出最大的三个?(两种方法实现)
时间: 2023-08-09 13:00:34 浏览: 174
方法一:
可以通过创建一个长度为10的整型数组来接收用户输入的10个数值,然后使用冒泡排序的方法对数组进行排序,找出最大的三个数值并按照从大到小的顺序输出。
具体步骤如下:
1. 创建一个长度为10的整型数组arr,用于存储用户输入的数值。
2. 使用for循环从键盘中接收用户输入的10个数值,并将其存储到数组arr中。
3. 使用冒泡排序法对数组arr进行排序,从大到小的顺序排列数组元素。
4. 输出arr数组的前三个元素,即为最大的三个数值。
代码示例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
System.out.println("请输入10个数值:");
for (int i = 0; i < 10; i++) {
arr[i] = scanner.nextInt();
}
// 冒泡排序
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("最大的三个数值为:");
for (int i = 0; i < 3; i++) {
System.out.print(arr[i] + " ");
}
}
}
方法二:
可以使用两个变量分别保存当前最大的三个数值,遍历用户输入的10个数值时,比较并更新这两个变量的值。
具体步骤如下:
1. 创建三个变量max1、max2和max3,用于保存最大的三个数值,初始值设置为负无穷大。
2. 使用for循环从键盘中接收用户输入的10个数值。
3. 在循环中,判断当前输入的数值是否大于max1,如果是,则将max1的值更新为当前输入值,并将max2和max3的值分别移到相应的位置。
4. 如果当前输入的数值介于max1和max2之间,则将max2的值更新为当前输入值,并将max3的值移到相应的位置。
5. 如果当前输入的数值介于max2和max3之间,则将max3的值更新为当前输入值。
6. 输出max1、max2和max3,即为最大的三个数值。
代码示例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int max1 = Integer.MIN_VALUE;
int max2 = Integer.MIN_VALUE;
int max3 = Integer.MIN_VALUE;
System.out.println("请输入10个数值:");
for (int i = 0; i < 10; i++) {
int num = scanner.nextInt();
if (num > max1) {
max3 = max2;
max2 = max1;
max1 = num;
} else if (num > max2) {
max3 = max2;
max2 = num;
} else if (num > max3) {
max3 = num;
}
}
System.out.println("最大的三个数值为:" + max1 + " " + max2 + " " + max3);
}
}