问题描述
输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。
输入格式
10个整数。
输出格式
多行输出,每行一个元素。
样例输入
2 2 3 3 1 1 5 5 5 5
样例输出
1
2
3
5
代码:
import java.util.*;
public class Shuzupaixuchuchong {
public static void fun(int arr[])
{
int length=arr.length;
// 共有3个for循环
// 其中第一for循环也就是最外层的for循环,列出数组里的每一个元素。
// 数组里面重复元素,每个元素比较后才能够得出哪些元素是重复的。
// 前面的二个for用来比较元素,比较两个相邻元素而已
for(int i=0;i<length;i++)
{
// 在这个地方不能将j=0,for的循环内层的for循环完了后,外层才开始循环
for(int j=i;j<length-1;j++)
{
if(arr[i]==arr[j+1])
{
// 这个for循环将去掉重复的元素
for(int k=j+1;k<length-1;k++)
{
arr[k]=arr[k+1];
}
length--;
j--;
}
}
}
Arrays.sort(arr); // 按小到大的顺序排序
// 这for循环用来打印数组的每一个元素
for(int i=0;i<length;i++)
{
System.out.println(arr[i]);
}
}
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int arr[]=new int[10];
for(int i=0;i<arr.length;i++)
{
arr[i]=in.nextInt();
}
fun(arr);
}
}
运行结果:
注:上面除掉重复的元素,是重复的元素排放在一起而已。但像 1 2 3 4 5 5 4 3 2 1 。除掉像这样的元素则行不通。
大家想知道后面的这个除掉数组重复的元素,请关注我下一篇博文。 希望我的博文能够对大家有帮助吧!