62,615
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
int[] arr={2,4,5,7,19,32,45};
newArr(arr);
}
public static int pr(int[] arr){
int a=8;
int i=0;
for(i=0;i<arr.length;i++){
if(a>arr[i]&&a<arr[i+1]){
break;
}
}
return(i+1);
}
public static void newArr(int[] arr){
int i=0;
int a=8;
int [] arr1=new int[arr.length+1];
for(i=0;i<arr1.length;i++){
if(i<pr(arr)){
arr1[i]=arr[i];
}
else if(i==pr(arr)){
arr1[i]=a;
}
else{
arr1[i]=arr[i+1];
}
System.out.println(arr1[i]);
}
System.out.println("a所在下标位置是:"+pr(arr));
}
}
public class Test {
public static void main(String[] args) {
int[] arr={2,4,5,7,19,32,45};
newArr(arr);
}
public static int pr(int[] arr){
int a=8;
int i=0;
for(i=0;i<arr.length;i++){
if(a>arr[i]&&a<arr[i+1]){
//这里arr[i+1]可能越界,你这里a赋值是8,看不出来问题,如果是一个循环到数组结束都不匹配的数,比如50,就体现出来了。正确做法是改为 for(i=0;i<arr.length-1;i++)
break;
}
}
return(i+1);
}
public static void newArr(int[] arr){
int i=0;
int a=8;
int [] arr1=new int[arr.length+1];
for(i=0;i<arr1.length;i++){
if(i<pr(arr)){
arr1[i]=arr[i];
}
else if(i==pr(arr)){
arr1[i]=a;
}
else{
arr1[i]=arr[i-1];//这里越界,应改为arr[a-1]
}
System.out.println(arr1[i]);
}
System.out.println("a所在下标位置是:"+pr(arr));
}
}
for (i = 0; i < arr1.length; i++) {
if (i < pr(arr)) {
arr1[i] = arr[i];
} else if (i == pr(arr)) {
arr1[i] = a;
} else {
arr1[i] = arr[i - 1]; //这个是arr[i-1]
}
System.out.println(arr1[i]);
}