Java重写《C经典100题》 --39

别等时光非礼了梦想. 提交于 2019-12-16 17:12:45

【程序39】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。 
2.程序源代码:

 1 import java.util.Arrays;
 2 import java.util.Random;
 3 import java.util.Scanner;
 4 
 5 /**
 6  *
 7  *【程序39】
 8  * 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
 9  * 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,
10  * 插入后此元素之后的数,依次后移一个位置。 
11  *
12  * @author www.cnblogs.com/java-100
13  *
14  */
15 
16 public class Java39 {
17 
18     public static void main(String[] args) {
19         int[] arr = new int[10];
20         Random ran = new Random();
21         for (int i = 0; i < arr.length; i++) {
22             arr[i] = ran.nextInt(100);
23         }
24         Arrays.sort(arr);
25         System.out.println(Arrays.toString(arr));
26         System.out.print("请输入一个100以内的数字:");
27         Scanner scanner = new Scanner(System.in);
28         int num = scanner.nextInt();
29         for (int i = 0; i < arr.length; i++) {
30             if (num < arr[i]) {
31                 arr = Arrays.copyOf(arr, arr.length + 1);
32                 System.arraycopy(arr, i, arr, i + 1, arr.length - i - 1);
33                 arr[i] = num;
34                 break;
35             }
36         }
37         System.out.println(Arrays.toString(arr));
38     }
39 
40 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!