要求: 有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下: ``` 请输入一个整数数字: 50 生成的新数组是:12 14 23 45 50 66 68 70 77 90 答: class Test9_2 { public static void main(String[] args) { //定义原数组 int[] arr = {12, 14, 23, 45, 66, 68, 70, 77, 90, 91}; //接受用户数据 Scanner sr = new Scanner(System.in); System.out.println("请输入数字"); int num = sr.nextInt(); //num为接收的数字 //因为需要存储多一个数据故定义一个新数组 11 长度 int[] newArr = new int[11]; //测试能否将十长度直接给11长度而不影响第十一位的存储 //找到新输入的数字应存放的位置 int weiZhi = 0; // newArr = arr; // newArr [11] = num; //循环遍历输出 for (int i = 0; i < arr.length; i++) { // System.out.println(newArr[i]); //报错 验证结果 的确是赋给的内存地址,无法达到小长度数组给大长度数组赋值,然后仍然有地方存储新数据 if (num >= arr[i]) { newArr[i] = arr[i]; weiZhi = i +1 ; } else { newArr[i + 1] = arr[i]; } } newArr[weiZhi] = num; for (int i = 0; i < newArr.length; i++) { System.out.println(newArr[i]); } } }
11-08
2664
08-07
4609
05-31
3417
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交