有一个数组,其中有十个元素从小到大依次排列 {12,14,23,45,66,68,70,77,90,91}。再通过键盘录入一个整数数字。要求:把数字放入数组序列中,生成一个新的数组,并且数组的元素依旧是从小到大排列的。执行效果如下:
请输入一个整数数字:
50
生成的新数组是:12 14 23 45 50 66 68 70 77 90 91
//导包
import java.util.Scanner;
public class Rank {
public static void main(String[] args) {
int[] before = {
12, 14, 23, 45, 66, 68, 70, 77, 90, 91};//定义原数组
int[] next = new int[11];//定义一个新数组,空的
Scanner sc = new Scanner(System.in);//创建对象
System.out.println("请输入一个数:");
int n = sc.nextInt();//键盘录入
int index = 0;//定义位置变量
for (int i = 0; i < before.length; i++) {
//遍历原数组
if (before[i] <= n) {
//如果原数组元素小于等于输入的数,插入的位置为原位置
next[i] = before[i];
index = i + 1;
} else {
//如果原数组元素大于输入的数,插入的位置向后移动一位
next[i + 1] = before[i];
}
next[index] = n;//index位置就是数字要插入的位置
}
System.out.print("新的数组是");//输出数组并检查
for (int i = 0; i < next.length; i++) {
System.out.print(next[i] + " ");
}
}
}