定义两个一维数组,每个数组随便填充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
下一篇: 文件路径通用的一种写法