我有一个任务,我必须打印一个包含这些数字的双精度数组:
一、二、三、四、五、六、七
像这样
一、七、二、六、三、五、四
所以第一个和最后一个应该是交替的,从数组的开头到数组的结尾。
我知道输出可能会令人困惑,但实际情况是,第一个元素应该打印(1),然后是最后一个元素(7),然后必须返回到开头并打印下一个元素(3),然后返回到结尾并在结尾打印下一个元素(6),依此类推。
下面是我的代码:
public static void print(double [] a){
int l = a.length-1;
for(int i = 0; i < a.length; i++){
if(a[i] == a[l]){
System.out.print(a[i]);
break;
}
System.out.print(a[i]+", "+a[l--]+", ");
}
}
该代码的作品,但只有当数组的大小是奇数。我想确保这段代码的作品将所有类型的大小数组。请帮助
4条答案
按热度按时间pcrecxhr1#
这里的规则相当简单:
就数组而言,您可以将其视为一个小问题。
就代码而言,应该是这样的,注意在Java中,你可以在循环中声明多个变量,然后在表达式中使用它们。
mu0hgdu02#
A.尝试
i <= l
-它将处理偶数/奇数长度B.比较指数而不是值,您需要它们直到数组
i>=a.length/2
的中间xqkwcwgp3#
请试试这个...它会有帮助的
mv1qrgav4#
您可以改用ArrayDeque,并简单地使用pollFirst和pollLast方法。