int [] f = {1,2,3,4,5,5,4,3,2,1};
int [] b = {6,1};
System.out.println(Arrays.toString(hide(f,b)));
public static int [] hide(int [] front, int [] back) {
int temp;
int extraTemp;
int nextTemp = 0;
int [] hiddenAt = new int[front.length];
//int [] shownAt = new int[front.length];
for(int x = 0; x < front.length; x++){
for(int y = 0; y <= back.length; y++){
temp = x;
if ((back.length > front.length) || (front[x] < 0 || back[y] < 0) || (front.length < 1 || back.length < 1)) {
System.exit(0);
}
if (y < back.length - 1){
nextTemp = Math.abs(back[y + 1] - front[x + 1]);
}
else {
nextTemp = 0;
}
if (front[x] > back[y]) {
System.out.println(temp);
}
else if (front[x] < back[y] && y >= back.length - 1) {
extraTemp = back[y] - front[x];
if (extraTemp > nextTemp){
extraTemp = nextTemp;
}
System.out.println(extraTemp);
}
else if (front[x] < back[y]) {
extraTemp = back[y] - front[x];
if (extraTemp > nextTemp){
extraTemp = nextTemp;
}
System.out.println(extraTemp);
}
}
}
return hiddenAt;
}
println
正在被替換以查看正在生成的值。當我確定這些值是正確的時候,他們將是hiddenAt[z] = temp;
。不循環的循環和陣列
我需要用它來back[0]
然後front[1]
與back[1]
等比較front[0]
之後,它會變爲一個:front[1]
與back[1]
然後用back[2]
直到front[]
結束front[2]
。我想找出最低的區別在哪裏。 (在這種情況下,當[]的數字是4和5.)
我得到兩個錯誤,一個說39行 if((back.length> front.length)||(front [x ] < 0 || back [y] < 0)||(front.length < 1 || back.length < 1)){ System.exit(0); }
是錯誤的,並且第9行也是錯誤的。 公共類2 { 公共靜態無效的主要(字串[] args){
int [] f = {1,2,3,4,5,5,4,3,2,1};
int [] b = {6,1};
System.out.println(Arrays.toString(hide(f,b)));
}
確切的錯誤是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at hw2.hide(hw2.java:39)
at hw2.main(hw2.java:9)
不太確定你的問題是什麼!你的帖子中應該有一個問號:P – Calpis
你得到的輸出是什麼,你期待什麼? –
我得到一個錯誤,但我想要一個{-4,-5}的打印數組(數字對應於前面數組中兩個索引之間的差異最小化的索引號)負號僅僅意味着差異不存在0. – user2449907