1795 - ASCII码排序
时间限制 : 1 秒
内存限制 : 128 MB
众所周知,字符在C语言中是使用ASCII码进行表示的。
现要求输入3个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这3个字符。
题目输入
第一行输入一个数N,表示有N组测试数据。
后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
题目输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
输入/输出样例
输入格式
3 qwe asd zxc
输出格式
e q w a d s c x z
C语言解答
#include <stdio.h> void swap(char *a, char *b){ char t; if(*a > *b){ t = *a; *a = *b; *b = t; } } int main(){ int n; char a, b, c; scanf("%d%*c", &n); while(n--){ scanf("%c%c%c%*c", &a, &b, &c); swap(&a, &b); swap(&b, &c); swap(&a, &b); printf("%c %c %c\n", a, b, c); } return 0; }
C++解答
#include<stdio.h> main() { int count; char a,b,c,s,m,n,q; scanf("%d\n",&count); while(count--) { scanf("%c%c%c",&a,&b,&c); scanf("%c",&s); if(a>b) { m=a; a=b; b=m; } if(a>c) { n=a; a=c; c=n; } if(b>c) { q=b; b=c; c=q; } printf("%c%2c%2c\n",a,b,c); } return 0; }
Java解答
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int N=sc.nextInt(); while(N-->0) { String s=sc.next(); char[] ch=s.toCharArray(); Arrays.sort(ch); for(int i=0;i<ch.length-1;i++) { System.out.print(ch[i]+" "); } System.out.println(ch[ch.length-1]); } } }