有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。
要增加一个学员的成绩,将它插入成绩序列,并保持降序.
思路:
1)新建一个比原来数组长度大1的数组
2)将原来数组里面的元素按照顺序存储到新的数组中
3)使用Scanner获取增加学员的成绩
4)通过循环比较获取插入元素要插入的位置
5)从插入位置开始及之后的元素依次
int[] scores = { 99, 85, 82, 63, 60 };
// 1)新建一个比原来数组长度大1的数组
int[] newScores = new int[scores.length + 1];
// 2)将原来数组里面的元素按照顺序存储到新的数组中
for (int i = 0; i < scores.length; i++) {
newScores[i] = scores[i];
}
// 3)使用Scanner获取增加学员的成绩
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要增加的学员成绩:");
int insert = sc.nextInt();
// 4)通过循环比较获取插入元素要插入的位置
int index=newScores.length-1;
for (int i = 0; i < newScores.length; i++) {
if(insert>newScores[i]){
index=i;
// 一旦获取元素符合条件,就不再比较
break;
}
}
// 5)从插入位置及之后的元素依次往后移动一位(注意:移动的时候,从后往前移动;下标从0开始的)
for(int i = newScores.length-1;i>index;i--){
newScores[i]=newScores[i-1];
}
// 6)将插入的元素放到相应的位置中
newScores[index]=insert;
// 遍历
for(int i=0;i<newScores.length;i++){
System.out.print(newScores[i]+" ");
}