解题思路:
思路1:将比K1大的数字用一个变量保存,然后再这个数之前的数全部往后移动一位,最后把变量中的数放到数组最前面。(无需管比K1大的数字)
思路2:重新定义两个数组,一个用来放比K1大的数,一个用来放比K1小的数。注意:小的数组需要倒序输出。(只提供思路,无代码)
int main()
{
int n,number[9];
scanf("%d",&n);
while(n--)
{
int i,k=0,j,temp=0;
for(i=0;i<9;i++)
scanf("%d",&number[i]);
for(i=0;i<9;i++)
{
if(number[k]>number[i])
{
temp=number[i]; //先保存找到比K1小的数字
for(j=i;j>0;j--) //该数字前的数字全部往后移动一位
number[j]=number[j-1];
number[0]=temp; //把找到的数字放到数组的最前面
k++; //及时更新K1的下标
}
}
for(i=0;i<9;i++)
printf("%d ",number[i]);
printf("\n");
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复