解题思路:1.让小兵去走,找插入位置

      2.把找到的位置腾出来,排哨兵从后向前腾
注意事项: 1.插入前是有序的

      2.数组有多余的空间
参考代码:

import java.util.*;

public class Main{

  public static void main(String args []){

    Scanner sc=new Scanner (System.in);

   //定义的空间比实际使用的空间多

    int a[]=new int[10];

    int i,j,c;

   //数据输入

    for(i=0;i<a.length-1;i++){

      a[i]=sc.nextInt();

    }

    //插入数据

    int b=sc.nextInt();

    //找插入的位置

    for(i=0;i<a.length-1;i++){

      if(a[i]>b){

        break;

      }

    }

    //i这个人的位置

    //腾,从后向前

    for(j=a.length-2;j>=i;j--){

       a[j+1]=a[j];

    }

    //放

    a[i]=b;

    for(i=0;i<a.length;i++){

       System.out.println(a[i]);

    }

  }

}


点赞(3)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

凯特烦恼 5年前 回复TA
@六出 #include<iostream> using namespace std; int main() { 	int a[10] = { 0 }; 	for (int i = 0; i < 9; i++) { 		cin >> a[i]; 	} 	int n; 	cin >> n; 	for (int i = 0; i < 10; i++) { 		if (n < a[i]) { 			int temp = a[i]; 			a[i] = n;	 			n = temp; 		} 	} 	a[9] = n; 	for (int i = 0; i < 10; i++) 	{ 		cout << a[i] << endl; 	} }
六出 5年前 回复TA
若是插入的数比最大的数还要大,怎么实现?