解题思路:
因为是已经正排好的数组,所以直接找到比输入项大的那项之后所有项所有都往后移动就可以,如果没有比他大的就直接放在最后。
注意事项:
这个写法只适用于小数据量,大型数据量建议快排。
参考代码:
#include<stdio.h>
int main(){
int array[10];
int insert_num;
for(int i=0;i<=8;i++){
scanf("%d",&array[i]);
}
array[9]=0;
scanf("%d",&insert_num);
for(int i=0;i<=8;i++){
if(insert_num<=array[i]){
int j=array[i];
array[i]=insert_num;
for(i;i<9;i++){//这里容易出现越界
int u=array[i+1];
array[i+1]=j;
j=u;
}
break;
}
array[9]=insert_num;
}
for(int i=0;i<=9;i++){
printf("%d\n",array[i]);
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复