ASCII码排序

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
 
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
 
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
2
qwe
asd
样例输出



e q w
a d s
关于上面输入输出的注意点:并不是说输入了组数n,随后全部输入n组数据后,才全部输出结果。
实际要求样例如下:
//指针
#include <stdio.h>
void swap(char *a, char *b);
int main(int argc, char *argv[])
{
    int i,num;
    char a,b,c;
    scanf("%d",&num);
    getchar();

    for(i=0;i<num;i++){

        scanf("%c%c%c",&a,&b,&c);
        getchar();
            if(a > b){
                swap(&a,&b);
            }
            if(a>c){
                swap(&a,&c);
            }
            if(b>c){
                swap(&b,&c);
            }
        printf("%c %c %c\n",a,b,c);
    }
    return 0;
}

void swap(char *a, char *b){
    char tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}

//异或
#include <stdio.h>
void quickswitch(char *a, char *b);
int main(int argc, char *argv[])
{
    int i,num;
    char a,b,c;
    scanf("%d",&num);
    getchar();

    for(i=0;i<num;i++){

        scanf("%c%c%c",&a,&b,&c);
        getchar();
            if(a > b){
                quickswitch(&a, &b);
            }
            if(a>c){
                quickswitch(&a, &c);
            }
            if(b>c){
                quickswitch(&b, &c);
            }
        printf("%c %c %c\n",a,b,c);
    }
    printf("C\n");
    return 0;
}
void quickswitch(char *a, char *b){
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
}
//C++
#include <iostream>
using namespace std;
int main()
{
    int num;
    char a,b,c;
    cin >> num;
    for(int i=0;i<num;i++){
        cin >>a>>b>>c;
            if(a > b){
                swap(a,b);
            }
            if(a>c){
                swap(a,c);
            }
            if(b>c){
                swap(b,c);
            }
        cout<<a<<" "<<b << " "<<c<<endl;
    }
    return 0;
}




posted @ 2016-06-05 10:23  PKICA  阅读(780)  评论(0编辑  收藏  举报