Java基础50道经典练习题(30)——插入数字
【程序 30 插入数字】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
数,依次后移一个位置。
源程序:
package com.homework.test;
import java.util.Scanner;
/*
【程序 30 插入数字】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
数,依次后移一个位置。
*/
public class Test30 {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入要插入的数:");
int m = scan.nextInt();
scan.close();
int[] a = {1,2,3,5,6,7,8}; // 4
int[] b = new int[8];
int len = a.length;
int flag = 0;
//此处只考虑了原数组是升序的,降序同理
if (m > a[0]){
for (int i=0; i<len; i++){
if (m < a[i]) {
b[i] = m;
flag = i;
break;
}
b[i] = a[i];
}
for (int j=flag+1; j<len+1; j++)
b[j] = a[j-1];
}
if (m >= a[6]){
b[7] = m;
for (int i=0; i<len; i++)
b[i] = a[i];
}
for (int i=0; i<len+1; i++){
System.out.print(b[i] + " ");
}
System.out.println();
}
}
今日事,今日毕。
posted on 2020-06-06 02:23 lifelicanpeng 阅读(267) 评论(0) 收藏 举报
浙公网安备 33010602011771号