韩顺平数组:Homework04

/*
随机生成10个整数(n < 100)保存到数组,并插入数组
*/
import java.util.Scanner;
public class Homework04{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);

		int[] arr = new int[10];                //声明一个长度为10数组,且不进行初始化
		int[] arrNew = new int[arr.length +1];  //声明一个新数组,长度比初数组大1.原理跟数组扩容一致
		
		int indax = 0;                          //保存插入元素的索引
		int insertNum = -1;                     //判断插入元素有没有找到插入位置
		int temp = 0;                           //数组交换时的媒介

		//初数组元素随机生成
		for (int i = 0; i < arr.length; i++){
			arr[i] = ((int)(Math.random() *100) +1);
		}

		//倒序排序初数组
		for (int i = 0; i < arr.length -1; i++){
			for (int j = 0; j < arr.length -1 -i; j++){
				if (arr[j] < arr[j+1]){
					temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		
		System.out.println("请输入插入元素:");
		int num = input.nextInt();
		
		//查找插入数组位置
		for (int i = 0; i < arr.length; i++){
			if (num < arr[i]){
				indax = i+1;
				insertNum = i;
			}
		}

		//判断数组有没有找到数组位置
		if (insertNum == -1){
			indax = arrNew[arrNew.length -1];
		}

		//元素插入适当的位置
		for (int i = 0, j = 0; i < arrNew.length; i++){
			if (indax != i){
				arrNew[i] = arr[j];
				j++;
			}else {
				arrNew[i] = num;
			}
		}

		//遍历元素插入完之后的数组
		for (int i :arrNew) {
		System.out.print(i+"\t");
		}
	}
}
posted @ 2022-11-27 21:40  大脑修理工  阅读(7)  评论(0)    收藏  举报