java__for插入一个元素第2版

来源:互联网 发布:线切割五角星编程 编辑:程序博客网 时间:2024/06/10 03:49
import java.util.Arrays;
import java.util.Scanner;


public class sz14 {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double[] s = new double[5];             //原数组
double[] s1 = new double[6];           //插入后的数组
int kb, lj = 0;                                        //插入数kb,插入后下标lj
System.out.print("請輸入5個數字,將为其排序:");
for (int i = 0; i < s.length; i++) {
s[i] = sc.nextDouble();
}
Arrays.sort(s);                 //原数组升序排列
System.out.print("升序:");
for (int i = 0; i < s.length; i++) {
System.out.print(s[i] + " ");
}
System.out.println();
System.out.print("请插入一个数字:");
kb = sc.nextInt();
for (int i = 0; i < s.length; i++) {
if (kb > s[i])           //通过与升序后的s数组中的各元素从小到大依次比较,判断插入后的下标lj
lj++;
}
System.out.println("插入后下标为:" + lj);
System.out.println("按升序排列为第" + (lj + 1) + "位");
for (int i = 0; i < s1.length; i++) {
if (i < lj)                  //将原数组s中在插入的元素kb之前的元素全部赋给插入后数组s1中下标一致的元素位置
s1[i] = s[i];
if (i == lj)               //将原数组s中的插入的元素kb赋给插入后数组s1中下标一致的元素位置
s1[i] = kb;
if (i > lj)                //将原数组s中在插入的元素kb之后的元素全部赋给插入后数组s1中下标一致的元素位置
s1[i] = s[i - 1];
                                            //如果kb在中间插入,意味着此时的s1[i]少了一位故而将s[i-1]赋给它。如果kb在最后被插入,则不会执行该语句。
System.out.print(s1[i] + " ");                // System.out.println(s1);不能用该语句输出整个s1数组。
}
}
}
0 0