我是第一年的IT学生,并尝试使用代码为作业编写程序;
public class SortaPP {
public static void main(String[] args) {
int[]arraysOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};
for(int i=arrayOfInts.length;--i>=1;){
for(int j = 0;j<i;j++){
if(arrayOfInts[j] > arrayOfInts[j+1]){
int temp = arrayOfInts[j];
arrayOfInts[j] = arrayOfInts[j+1];
arrayOfInts[j-1] = temp;
for (int i = 0; i < arrayOfInts.length; i++){
System.out.print(arrayOfInts[i]+"");
System.out.println();
}
}
}
}
}
}
我一直收到错误:找不到符号,是否有人可以帮助我?
答案 0 :(得分:2)
正如jbutler告诉你的那样,如果没有一些解释,很难理解你要做什么。
但首先你得到一个拼写错误:你声明int数组arraysOfInts但使用arrayOfInts。 's'去了哪里?
其次,为什么你的第三个循环在这里更重要:你不能在同一个上下文中使用相同的变量名:我在你的第一个循环中声明,你不能再使用它使用另一个字母。< / p>
之后你将不得不更好地研究你的算法,你会遇到一些我认为的IndexOutOfBoundExceptions。
答案 1 :(得分:1)
这只是一个错字。
Change the line:
int[] arraysOfInts
to
int[] arrayOfInts
答案 2 :(得分:0)
使用以下代码: -
import java.util.Arrays;
公共类SortaPP {
public static void main(String[] args) {
int[] arraysOfInts = { 42, 97, 3, 689, 14, 1076, 3000, 8, 632, 327,
976, 4215 };
Arrays.sort(arraysOfInts);
for (int k = 0; k < arraysOfInts.length; k++) {
System.out.println(arraysOfInts[k]);
}
}
}
答案 3 :(得分:0)
public static void main(String[] args) {
//change the name of your variable (you are using arraysOfInts)
int[] arrayOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};
//this kind of loop must have 3 arguments
//without the 'arrayOfInts.length - 1' you can have one ArrayIndexOutOfBoundsException
for(int i = arrayOfInts.length - 1; i >= 1; i--){
for(int j = 0; j < i; j++){
if(arrayOfInts[j] > arrayOfInts[j+1]){
int temp = arrayOfInts[j];
arrayOfInts[j] = arrayOfInts[j+1];
arrayOfInts[j-1] = temp;
//you already declared one int i variable
for (int x = 0;x < arrayOfInts.length; x++){
System.out.print(arrayOfInts[x] + "");
System.out.println();
}
}
}
}
}
答案 4 :(得分:0)
arrayOfInts
不存在,它没有被宣布。
你可能想放arraysOfInts
;)只是一个错字
答案 5 :(得分:-1)
它只是'arrayOfInts'中的一个错字错误。
public class SortaPP {
public static void main(String[] args) {
// change to arraysOfInts
int[] arraysOfInts = {42,97,3,689,14,1076,3000,8,632,327,976,4215};
for(int i=arraysOfInts.length;--i>=1;){
for(int j = 0;j<i;j++){
if(arraysOfInts[j] > arraysOfInts[j+1]){
int temp = arraysOfInts[j];
arraysOfInts[j] = arraysOfInts[j+1];
arraysOfInts[j-1] = temp;
// You will get ArrayIndexOutOfBoundsException: -1
for (int k = 0; k < arraysOfInts.length; k++){
System.out.print(arraysOfInts[k]+"");
System.out.println();
}
}
}
}
}
}
答案 6 :(得分:-1)
1)建议阅读一些关于算法的书籍,以便开始Data Structures and Algorithms
2)正如在评论数组中所说的 s OfInts不是相同的arrayOfInts
3)又一次,你的第三个for
:
for (int i = 0; i < arrayOfInts.length; i++){
System.out.print(arrayOfInts[i]+"");
System.out.println();
}
1。你会收到错误:Duplicate local variable i
2.你会得到:java.lang.ArrayIndexOutOfBoundsException
所以如果你想使用第三个:
for (int k = 0; k < arrayOfInts.length-1; k++){
System.out.print(arrayOfInts[k]+"");
System.out.println();
}
4)arrayOfInts[j-1]
非常糟糕,因为如果arrayOfInts[j] > arrayOfInts[j+1]
在true
时会返回j == 0
,您将获得java.lang.ArrayIndexOutOfBoundsException:
,因为没有带-1索引的元素< / p>