为啥插入数字会覆盖数字
package 综合案例; import java.util.Scanner; public class lainXi { public int[] xcc() { int []s=new int[10]; Scanner sc=new Scanner(System.in); for(int i=0;i<s.length-1;i++) { s[i]=sc.nextInt(); System.out.print("请输入第"+(i+1)+"个字符"); try{ s[i]=sc.nextInt(); }catch(java.util.InputMismatchException e) { System.out.println("输入格式有误请输入数字,打二蛋屁股"); sc.next(); i--; }}for(int n:s) System.out.println(n);return s; } public void jian (int n ,int[] f){ for(int i=0;i<n;i++) { System.out.println(f[i]+" "); }System.out.println(); } public void cha(int[]a,int b,int c) { for(int i=a.length-1;i>c;i--) { a[i]=a[i-1]; }a[c]=b; } public static void main(String[] args) { // TODO Auto-generated method stub lainXi scc=new lainXi(); System.out.println(scc.xcc()); int [] n=scc.xcc(); scc.jian(n.length-1,n); Scanner sc=new Scanner("请输入要插入数据"); int b=sc.nextInt(); System.out.println("请输入要插入的位置"); int c=sc.nextInt(); scc.cha(n,b,c); scc.jian(n.length,n); } }
为啥插入数字会覆盖数字
8
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小黑
2022-08-10 13:36:10
同学你好,是因为同学代码中
for(int i=a.length-1;i>c;i--) { a[i]=a[i-1]; } }
是将数组中下标为i-1的数据赋值给下标为i的数据,所以下标为i-1的数据会覆盖掉下标为i的数据,当数组未满时将以上代码修改为:
for(int i=a.length-2;i>=c;i--) { a[i+1]=a[i]; } a[c]=b;
当数组已满时将以上代码修改为:
public int [] cha(int[]a,int b,int c) { //因为数组中的数据已满,定义一个比数组a的长度大1的数组 int []arr=new int[a.length+1]; //将数组a的数据放入数组arr for (int i = 0; i < a.length; i++) { arr[i]=a[i]; } //将arr数组中的数据从下标c开始往后移动 for(int i=arr.length-2;i>=c;i--) { arr[i+1]=arr[i]; } //将数据插入到下标c的位置 arr[c]=b; return arr; }
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星