使用java对数字进行排序
我在程序中发现了一些错误,请检查一下。arr[]中出现了一些错误,但我无法在此代码中找到实际问题使用java对数字进行排序,java,Java,我在程序中发现了一些错误,请检查一下。arr[]中出现了一些错误,但我无法在此代码中找到实际问题 class sort { public static void main(String args[]) { int arr[], i, j, n, temp; n = args.length; for (i = 0; i <n; i++) { arr[i] = Integer.parseInt(args[i]);
class sort {
public static void main(String args[]) {
int arr[], i, j, n, temp;
n = args.length;
for (i = 0; i <n; i++) {
arr[i] = Integer.parseInt(args[i]);
}
for (i = 0; i < n-1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (i = 0; i <= n; i++) {
System.out.println(arr[i]);
}
}
}
应该是
for (i = 0; i <= n; i++)
for(j=1+1; j<=n; j++)
但是如果不提供抛出的异常,就不可能说
你能告诉我实际的错误是什么,发生在哪里吗
我怀疑
for (i = 0; i < n; i++)
应该是
for (i = 0; i <= n; i++)
for(j=1+1; j<=n; j++)
但是你真的应该使用Arrays.sortarr和Arrays.tostringar你从来没有初始化过arr。数组是一个对象,需要先更新才能使用
for(j= i +1; j < n; j++)
还是你的案子
arr = new int[100]; //Sets size of array to hold 100 integers
它需要知道分配多少内存来存储多少整数。在尝试通过以下行访问阵列之前,请确保使用上述代码初始化阵列:
arr = new int[args.length];
这段代码应该给你一个编译器错误
变量arr可能尚未初始化
最好使用Collections.sortList列表
只要删除最后一个循环中的等号,您的程序就会运行良好 为什么您要编写自己的排序例程而不是使用库提供的排序例程?实际上,我是非常新的java。所以我不知道有多少库。如果有编译器错误,你应该总是在你的帖子中包含这些信息。如果有运行时错误,显示堆栈跟踪中的最后几次跳转@我希望这会有帮助。请确保使用对您的情况有意义的大小,而不是我用于演示的100:从代码中可以明显看出,OP需要一个新的int[args.length]。谢谢Marko,我没有真正阅读上下文,只是立即发现了错误。我会加进去的