从 Scanner 将值输入到数组中
input values into array from Scanner
用户需要输入10个号码。
并将它们放入一个数组中。
并从小到大介绍一下。
这是我的代码
import java.util.Scanner;
public class q1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 rundom numbers: ");
for (int i = 0; i < arr.length; i++) {
int number = input.nextInt();
System.out.println(number);
}
}
}
每次输入新数字时,您都会在数组中遍历,如果新数字大于下一个数字,则将它们相互切换。
重复直到到达数组末尾,这样您的数组就会保持排序。
public static void main(String... args) {
Scanner scan = new Scanner(System.in);
int[] arr = readRandomNumbers(scan, 10);
Arrays.sort(arr);
System.out.println("Sorted number: " + Arrays.toString(arr));
}
private static int[] readRandomNumbers(Scanner scan, int total) {
int[] arr = new int[total];
System.out.format("please enter %d random numbers:\n", total);
for (int i = 0; i < arr.length; i++) {
System.out.format("%d: ", i + 1);
arr[i] = scan.nextInt();
}
return arr;
}
如果您在将它们插入数组时需要对其进行排序,您可以将现有数字扔掉并插入到您想要的位置。
类似的东西 (InsertionSort):
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 random numbers: ");
//store 10 numbers into the array
for (int i = 0; i < arr.length; i++) {
int number = input.nextInt();
//switch all values in array which are > number one to the right
int j = i;
while (j > 0 && arr[j-1] > number) {
arr[j] = arr[j-1];
j--;
}
//insert number at correct position;
arr[j] = number;
}
System.out.println(Arrays.toString(arr));
}
无论如何,更好的解决方案(恕我直言)是在用户指定的位置插入数字,后记使用 Arrays.sort
,如下所示:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 random numbers: ");
//store 10 numbers into the array
for (int i = 0; i < arr.length; i++) {
arr[i] = input.nextInt();
}
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
用户需要输入10个号码。
并将它们放入一个数组中。
并从小到大介绍一下。
这是我的代码
import java.util.Scanner;
public class q1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 rundom numbers: ");
for (int i = 0; i < arr.length; i++) {
int number = input.nextInt();
System.out.println(number);
}
}
}
每次输入新数字时,您都会在数组中遍历,如果新数字大于下一个数字,则将它们相互切换。
重复直到到达数组末尾,这样您的数组就会保持排序。
public static void main(String... args) {
Scanner scan = new Scanner(System.in);
int[] arr = readRandomNumbers(scan, 10);
Arrays.sort(arr);
System.out.println("Sorted number: " + Arrays.toString(arr));
}
private static int[] readRandomNumbers(Scanner scan, int total) {
int[] arr = new int[total];
System.out.format("please enter %d random numbers:\n", total);
for (int i = 0; i < arr.length; i++) {
System.out.format("%d: ", i + 1);
arr[i] = scan.nextInt();
}
return arr;
}
如果您在将它们插入数组时需要对其进行排序,您可以将现有数字扔掉并插入到您想要的位置。
类似的东西 (InsertionSort):
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 random numbers: ");
//store 10 numbers into the array
for (int i = 0; i < arr.length; i++) {
int number = input.nextInt();
//switch all values in array which are > number one to the right
int j = i;
while (j > 0 && arr[j-1] > number) {
arr[j] = arr[j-1];
j--;
}
//insert number at correct position;
arr[j] = number;
}
System.out.println(Arrays.toString(arr));
}
无论如何,更好的解决方案(恕我直言)是在用户指定的位置插入数字,后记使用 Arrays.sort
,如下所示:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arr[] = new int[10];
System.out.println("please enter 10 random numbers: ");
//store 10 numbers into the array
for (int i = 0; i < arr.length; i++) {
arr[i] = input.nextInt();
}
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}