1795 - ASCII码排序

通过次数

0

提交次数

0

时间限制 : 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]);
		}
	}
}