/*
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");
}
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复