Description
N个整数,将其排序输出。

输入

第一行是一个整数K(1<=K<=20),表示有多少个样例,每个样例的第一行是一个整数N(1<=N<=1,000)和一个字符X,X为A时表示升序排序,为D时为降序排列;第二行为N个整数,每个整数都可以使用int表示,每个之间用一个空格隔开。

输出

每个样例输出一行,按排序要求输出整数,每个整数之间输出一个空格。(最后一个整数后不要有空格)

Sample Input
2
3 A
3 5 2
4 D
2 5 7 3

Sample Output
2 3 5
7 5 3 2

Source

ericxie

1097 排序_#include

#include <stdio.h>
int a[100];//在主函数以外来定义
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int n,i,j,t;
char x;
scanf("%d %c",&n,&x);//必须有空格作为缓冲
for(i=0;i<n;i++)//遍历输入数组
{
scanf("%d",&a[i]);
}
//冒泡排序。升序排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
if(x=='A')//已经是升序排序了。直接输出
{
for(i=0;i<n;i++)
{
printf("%d",a[i]);
if(i!=n-1)
{
printf(" ");
}
}
}
if(x=='D')//从后往前输出,那就是降序排序了
{
for(i=n-1;i>=0;i--)
{
printf("%d",a[i]);
if(i!=0)
{
printf(" ");
}
}
}
printf("\n");
}
return 0;
}

注意事项:最后一个数字不能有空格。
写于2021年8月20日23:12分。