/*

builder:畅柯

功能:

将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。


输入

输入有多行,第一行为N表示行数,每行9个整数.


输出

输出N行,按要求进行排序的结果.


样例输入

2

6 8 9 1 2 5 4 7 3

3 5 8 9 1 2 6 4 7


样例输出

3 4 5 2 1 6 8 9 7

2 1 3 5 8 9 6 4 7


日期:年月日

*/

#include<stdio.h>

#include<math.h>

int main(){

int a[100][100];

int i,n,j;

scanf("%d",&n);

for(i=0;i<n;i++){/*按照n每行录入9个数*/

for(j=0;j<9;j++){

scanf("%d",&a[i][j]);

}

}

int min;

int num1;

int b[100][100];

int t;

int index[100];

for(i=0;i<n;i++){

num1=a[i][0];

t=0;

for(j=8;j>0;j--){

if(a[i][j]<num1){

b[i][t]=a[i][j];/*将比第一个元素小的数存入二维数组b中*/ 

a[i][j]=EOF;

t++;

}

index[i]=t; /*将b第一个元素小的数字个数存入一个一维数组*/ 

}

}

// int k=0; 

for(i=0;i<n;i++){

for(j=0;j<9;j++){

if(a[i][j]!=EOF){

b[i][index[i]]=a[i][j];/*index数组中的元素为二维数组行下标,下标逐步递增*/

index[i]++;

}

}

}

for(i=0;i<n;i++){/*打印排好序的数组*/ 

for(j=0;j<9;j++){

printf("%d ",b[i][j]);

} printf("\n");

}

}


点赞(2)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论