欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

定义两个一维数组,每个数组随便填充10个元素。输出的数组是两个数组的并集,并且从小到大排好序,不重复。

程序员文章站 2022-07-10 18:56:56
import java.util.Scanner;public class cpdd{public static void main(String[] args){int [] arr1=new int [10];int [] arr2=new int [10];Scanner scan=new Scanner(System.in);for(int i=1;i<=10;i++){System.out.println("请输入数组一的第"+i+"个值");...
import java.util.Scanner;
public class cpdd{
	public static void main(String[] args){
		int [] arr1=new int [10];
		int [] arr2=new int [10];
		Scanner scan=new Scanner(System.in);
		for(int i=1;i<=10;i++){
			System.out.println("请输入数组一的第"+i+"个值");            //往第一个数组中填充元素
	         int a=scan.nextInt();
        	arr1[i-1]=a;
		} 
		for(int i=1;i <=10;i++){
			System.out.println("请输入数组二的第"+i+"个值");            //往第二个数组中填充元素
	         int b=scan.nextInt();
        	arr1[i-1]=b;
		}
		int [] arr3=new int [arr1.length+arr2.length];
		int n=0;
		for(int i=0;i<arr1.length;i++){                             //创建一个新数组,维数是前两个数组之和,并且前半部分内容为第一个数组的内容
			arr3[i]=arr1[i];
		}
		for(int i=arr1.length;i<arr1.length+arr2.length;i++){         //后半部分内容为第二个数组的内容
			arr3[i]=arr2[i-arr2.length];
		}
		for(int i=0;i<arr3.length;i++){
			for(int j=i;j<arr3.length;j++){
				if(arr3[i]==arr3[j] && i!=j){                       //将数组内重复的元素中靠后的元素赋值为0
					arr3[j]=0;
				}
			}
			}
			int [] arr4=new int[arr3.length];
			for(int i=0;i<arr3.length;i++){                     //新创建数组,维数与第三个数组相同,但是将arr[3]里不为零的元素一次填充到新数组中
				if(arr3[i]!=0){                                   
					arr4[n]=arr3[i];
					n++;
				}
			}                                                   //此时新数组前半部分为不重复的元素,后半部分为0;
		int []arr5=new int[n];
		for(int i=0;i<n;i++){
			arr5[i]=arr4[i];                                   //再创建一个数组,将arr[4]中不为零的元素按顺序填充到新数组中
		}
		for(int i=1;i<n;i++){
			for(int j=0;j<n-i;j++){
				if(arr5[j]>arr5[j+1]){
					arr5[j]=arr5[j]^arr5[j+1];
					arr5[j+1]=arr5[j]^arr5[j+1];
					arr5[j]=arr5[j]^arr5[j+1];               //异或 将新数组中的值 排序
				}
			}
		}
		System.out.println("排序后的新数组为:");                 //输出
 		for(int i=0;i<n;i++){
			System.out.println(arr5[i]);
		}
	}
}
请输入数组一的第1个值
6
请输入数组一的第2个值
2
请输入数组一的第3个值
3
请输入数组一的第4个值
1
请输入数组一的第5个值
5
请输入数组一的第6个值
4
请输入数组一的第7个值
9
请输入数组一的第8个值
8
请输入数组一的第9个值
6
请输入数组一的第10个值
2
请输入数组二的第1个值
3
请输入数组二的第2个值
1
请输入数组二的第3个值
5
请输入数组二的第4个值
4
请输入数组二的第5个值
6
请输入数组二的第6个值
9
请输入数组二的第7个值
8
请输入数组二的第8个值
4
请输入数组二的第9个值
2
请输入数组二的第10个值
3
排序后的新数组为:
1
2
3
4
5
6
8
9

本文地址:https://blog.csdn.net/rengfengqi/article/details/107591273

相关标签: java