开发者社区> 问答> 正文

java 数插入数组问题

在排序好的数组中添加一个数字,将添加后的数字插入到数组合适的位置我不会啊,求大神解答,怎么样能把一个数字插入到数组中啊,用JAVA解决

public class xiti4_10 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int mark = 0;
Scanner in = new Scanner(System.in);
System.out.print("数组长度");
int[] a = new int[in.nextInt()];
for (int i = 0; i < a.length; i++) {
a[i] = (int) (Math.random() * 100);
}
java.util.Arrays.sort(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.print("再输入一个数");
int key = in.nextInt();
for (int i = 0; i < a.length; i++) {
if (key < a[i]) {
mark = i;
}
}
int temp = key;
int[] b = new int[a.length + 1];
b[mark] = temp;
for (int i = mark + 1; i <= b.length - 1; i++) {
b[i + 1] = a[i];
}
for (int i = 0; i < mark; i++) {
b[i] = a[i];
}
System.out.println("插入后:");
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
}
}

}

这两行出了问题,指导指导我  谢谢

for (int i = mark + 1; i <= b.length - 1; i++) {
b[i + 1] = a[i];
}

展开
收起
蛮大人123 2016-03-19 11:15:25 2246 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    改成

    for (int i = mark + 1; i < b.length - 1; i++) {
        b[i + 1] = a[i];
    }

    当 i = b.length - 1的时候i + 1就是b.length
    b[b.length]显然溢出了
    因为数组的下标是从0开始的,所以数组b最后的元素只到b[b.length - 1]

    2019-07-17 19:07:46
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载