日期:2014-05-20  浏览次数:20830 次

向数组中插入元素
编写程序。向整形数组的指定位置插入元素,并输出插入前后数组的值。

我写了好多次,不能让数组位置后移一位。。。

Java code




package cn.puruidong.accp_14;

/**
 * @author PuRuidong
 *
 */
import java.util.Scanner;
public class Fivenum {

    /**
     * @param args
     */
    private int num [] = new int[] {10,20,30,55,99};//原数组
    private int no [] = new int [num.length+1];//新数组
    private static Scanner sc = new Scanner (System.in);
    private static int index ;//录入想插入的位置
    private static int value ;//录入想插入的值
    
    public void show (int index ,int value){ ////这里面的int index,和int value是什么含义?我迷糊了
        ////////////输出插入前的数组
        System.out.println("插入前的数组:");
        for (int i=0;i<num.length;i++){//输出插入前的数组
            System.out.print(num[i]+" ");
        }
        /////赋值数组
        for (int c=0;c<num.length;c++){
            no[c] = num[c];
        }
        System.out.println();
        System.out.println("请输入想插入的位置(0~5):");
        index = sc.nextInt(); //录入想插入的位置
        System.out.println("请输入想插入的数值:");
        value = sc.nextInt(); //录入想插入的值
        for (int j=no.length-1;j>index;j++){ ////元素后移,就是这出问题了。。。
            no[j] = no[j-1];
        }
        no[index] = value; //将 value的值放在index位置
        System.out.println("插入后的数组:");
        /////输出插入后的数组
        for (int k=0;k<no.length;k++){
            System.out.println(no[k]);
        }
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    Fivenum center = new Fivenum ();
    center.show(index, value);

    }

}







------解决方案--------------------
Java code
 for (int j=no.length-1;j>index;j--){ 
            no[j] = no[j-1];
        }

------解决方案--------------------
如果程序能改的话,不妨改用List来做,List可以直接插入元素到任意位置的。