解题思路:
     思路1:将比K1大的数字用一个变量保存,然后再这个数之前的数全部往后移动一位,最后把变量中的数放到数组最前面。(无需管比K1大的数字)
    
     思路2:重新定义两个数组,一个用来放比K1大的数,一个用来放比K1小的数。注意:小的数组需要倒序输出。(只提供思路,无代码)



参考代码:
                #include<stdio.h>
                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分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论