题目链接:点击打开链接、
值得一提的是这里的输出的问题上面。
输出的每一行的最后一个数字后面是没有空格的!
//8:27pm-->9:05pm
//2017/3/5
#include <stdio.h>
#include <stdlib.h>
//1.输入数据
//2.编写比较函数
//3.调用qsort函数进行排序
//4.输出
int cmp(const void *a,const void *b)
{
int *s1,*s2;
s1=(int *)a;
s2=(int *)b;
while(*s1 != -1 && *s2 != -1 && *s1 == *s2) {s1++;s2++;}
return *s2-*s1;
}
int main()
{
int record[1000][51];
int i,j,n,t,count;
scanf("%d\n",&t);
while(t--){
scanf("%d",&n);
count=0;
//将待排列的数据输入
while(n--){
j=0;
while(scanf("%d",&record[count][j]) && record[count][j] != -1) j++;
count++;
}
//编写cmp函数
//调用qsort
qsort(record,count,sizeof(record[0]),cmp);
for(i=0;i<count;i++){
j=0;
while(1){
if(record[i][j+1] != -1){
printf("%d ",record[i][j]);
j++;
}
else break;
}
printf("%d\n",record[i][j]);
}
}
return 0;
}