思路:这道题最终是要在n个数的基础上再加一个m,所以直接建立一个N+1长度大小的数组,可以将m直接放在首位,剩下的n个位置,填放已知数列,再使用数组排序方法即可。
import java.util.*;
public class Main {
public static void Main(String[] args) {
Scanner a=new Scanner(System.in);
while(a.hasNext())
{
int n=a.nextInt();
int m=a.nextInt();
if(n==0&&m==0)
break;
int sort=0;
int[] nnn=new int[n+1];//这道理重点在这儿
//建立数组时多加一个位置放m于首位
//然后再剩下来的n个位置里放已知数列
//然后再使用Arrays.sort()直接将整个数组排序
//输出即可
nnn[0]=m;
for(int i=1;i<nnn.length;i++) {
nnn[i]=a.nextInt();
if(nnn[i]>m)
sort=i;
}
Arrays.sort(nnn);
for(int j=0;j<nnn.length;j++) {
if(j==0)
System.out.print(nnn[j]);
else
System.out.print(" "+nnn[j]);
}System.out.println();
}
}
}
我原来使用的是list,但是代码量较大。
若有错误,还请指正