码迷,mamicode.com
首页 > 编程语言 > 详细

ASCII码排序

时间:2016-06-05 11:12:37      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

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

ASCII码排序

标签:

原文地址:http://www.cnblogs.com/guxuanqing/p/5560201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!