解题思路:

注意事项:

参考代码:

#include<iostream>
using namespace std;
int main()
{
    int a[10];
   
    for(int i=0;i<10;i++){
        cin>>a[i];//将待插入的数放置数组末尾
    }
    
    int l = a[9];//作为一个临时存储,否则数组元素后移时,该数可能丢失
    for(int i=0;i<10;i++){//从小到大遍历,待插入的数字一定比后面的小,比前面的大(从小到大的有序数组,可以用打草稿试试)
    
        if(l < a[i]){//直接寻找比待插入数字大的元素,取代其所在的位置
            for(int j=9;j>=i;j--){//将当前元素以及后面的元素后移一位,为待插入数字腾出空间
                a[j] = a[j-1];
            }
            a[i] = l;//取代该位置,成功上位
        }
    }
    
    for(int i=0;i<10;i++){//直接输出即可
        cout<<a[i]<<endl;
    }
    return 0;
}

点赞(0)
 

0.0分

4 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

执言 3年前 回复TA
这个过不了啊,在这一句(a[i] = l;//取代该位置,成功上位)后面应该加个break;才可以过的,