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

【程序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 }

 

posted @ 2016-03-27 22:40  Java-100  阅读(260)  评论(0编辑  收藏  举报

进入Java-100博客   博客声明