【发布时间】:2016-03-04 13:19:27
【问题描述】:
用户可以输入尽可能多的数字,程序应该对它们进行排序。所以我想在开始排序之前找到输入中的数字元素。示例“输入一些数字”输入:76 24 56 9 312 1 3013,我想要输出:1 9 24 56 76 312 3013(升序)。注意我没有要求用户输入他要先输入多少,这正是我想知道如何找到的。
这是用户自己输入数组大小的工作代码
import java.util.Scanner;
public class ArraySorting {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter size of the array");
int z = in.nextInt();
int a[] = new int[z];
System.out.println("Enter numbers");
for (int i = 0; i < z; i++) {
a[i] = in.nextInt();
}
for (int j = 0; j < z - 1; j++) {
for (int p = 0; p < (z - 1) - j; p++) {
if (a[p] > a[p + 1]) {
int n = a[p];
a[p] = a[p + 1];
a[p + 1] = n;
}//if loop
}//for loop 2
}//for loop 1
System.out.println("Numbers in Ascending order:");
for (int k = 0; k < z; k++) {
System.out.print(a[k] + " ");
}
}
}
【问题讨论】:
-
使用
String[] numbers =String.split(" ");这会将您的字符串拆分为空格处的字符串数组(它们将被删除) -
请“美化”你的代码。这很难阅读;)
-
您可以读取用户输入到列表中的任何内容并检查其大小。
-
" 注意我没有要求用户输入他要先输入多少,这正是我想知道如何找到的" ...您的代码实际上确实采用了第一个输入作为长度。
标签: java arrays sorting bubble-sort