很简单的一个java问题
来源:百度知道 编辑:UC知道 时间:2024/09/12 22:02:23
下面这个办法用于计算和return span的 array 用 不超过3n/2 comparsions 在array元素之间。
public static double span(double []A){
double maximum=A[0];
double minimum=A[0];
for(int i=1;i<A.length;i=i+2){
if(A[i]<A[i+1]){
//请完成这里
}else{//请完成这里}
} return maximum - minimum;
}
2.如果A.length 是偶数会有什么样的错误出现?
public static double span(double []A){
double maximum=A[0];
double minimum=A[0];
for(int i=1;i<A.length;i=i+2){
if(A[i]<A[i+1]){
//请完成这里
}else{//请完成这里}
} return maximum - minimum;
}
2.如果A.length 是偶数会有什么样的错误出现?
第一个问题不知所云,无法填写
第二个问题简单:
如果A.length 是偶数,会抛出ArrayIndexOutOfBoundsException异常,也就是数组越界异常,
循环for(int i=1;i<A.length;i=i+2){ }是从第一位元素开始,所以循环所遍历的总长度是数组A的长度减1,就是奇数了,而每循环一次i+2,奇数不能整除2,所以在循环的最后并不能到仅仅到达A.length-1的位置,而会到达A.length的位置,而在循环体内要用到A[i]和A[i+1]),所以肯定会产生越界异常。
你可以假设数组A里有两个元素,即:A.length=2,推敲一下就明白了。
问题描述有些语无伦次,看不明白是什么意思。