指定位置插入后,最后一个数字被覆盖了,有大神解决的吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | package MathDemo; import java.util.Scanner; public class Admin { //定义显示提示信息方法 public void notice() { System.out.println( "******************************" ); System.out.println( " 1--插入数据(不得超过5个数)" ); System.out.println( " 2--显示所有数据 " ); System.out.println( " 3--在指定位置处插入数据 " ); System.out.println( " 4--查询能被3整除的数据 " ); System.out.println( " 0--退出 " ); System.out.println( "******************************" ); } // 定义插入数据方法 public int [] insertDate( int [] n) { Scanner sc = new Scanner(System.in); for ( int i = 0 ; i < n.length; i++) { System.out.println( "请输入第" + (i + 1 ) + "个数据" ); n[i] = sc.nextInt(); if (n[i] == 0 ) { System.out.println( "输入的数据不能为0! 请重新输入!" ); i--; // 重新从第一个数开始赋值 continue ; } } System.out.print( "你输入的元素为:" ); for ( int n1 : n) { System.out.print(n1 + " " ); } return n; } // 定义显示所有数据方法 public void showDate( int [] a, int length) { System.out.println( "数据库中所有数据如下:" ); for ( int i = 0 ; i < a.length; i++) { System.out.print(a[i] + " " ); } } //定义在指定位置处插入数据方法 public void insertAtArray( int []a, int n, int k) { System.out.println( "请输入要插入的数:" ); Scanner sc= new Scanner(System.in); n=sc.nextInt(); System.out.println( "请输入要插入数的位置:" ); k=sc.nextInt(); for ( int i=a.length- 1 ;i>k- 1 ;i--) { a[i]=a[i- 1 ]; } a[k- 1 ]=n; System.out.println( "插入后数据整体为:" ); for ( int a1:a) { System.out.print(a1+ " " ); } } //定义能被3整除的数据方法 public void divThree( int []a) { System.out.println( "数据中能被3整除的数为:" ); for ( int i= 0 ;i<a.length;i++) { if (a[i]% 3 == 0 ) { System.out.print(a[i]+ " " ); } else { System.out.println( "没有能被3整除的数!" ); break ; } } } public static void main(String[] args) { Admin ad = new Admin(); int [] n = new int [ 5 ]; // 给数组初始化长度 while ( true ) { System.out.println(); Scanner sc = new Scanner(System.in); ad.notice(); System.out.println( "请输入对应的数字进行操作:" ); int sc1 = sc.nextInt(); switch (sc1) { case 1 : ad.insertDate(n); break ; case 2 : ad.showDate(n, n.length); break ; case 3 : ad.insertAtArray(n, 1 , 1 ); break ; case 4 : ad.divThree(n); break ; case 0 : System.out.println( "程序结束!" ); System.exit( 0 ); break ; default :System.out.println( "输入错误,请重新输入!!" ); } } } } |
源自:Java方法
8-1 综合案例需求
2
收起
正在回答 回答被采纳积分+1
2回答
n_nmingzibuhaoqi
2019-05-28 13:22:16
同学我想问下ad.insertDate(n) 这个是什么意思,调用方法一的数组值给在主方法中定义的数组赋值吗
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧