Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3796767
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2013-04-26 14:16:45

ASCII码排序

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。 输出 对于每组输入数据,输出一行,字符中间用一个空格分开。 样例输入
3
qwe
asd
zxc
样例输出
e q w
a d s
c x z
题目链接http://acm.nyist.net/JudgeOnline/problem.php?pid=4
  1. #include   
  2. #include   
  3.   
  4. void swap(char *a, char *b)  
  5. {  
  6.     char tmp = *a;  
  7.     *a = *b;  
  8.     *b = tmp;  
  9. }  
  10.   
  11.     int  
  12. main( int argc, char **argv )  
  13. {  
  14.     int n;  
  15.     char buf[4];  
  16.   
  17.     scanf("%d", &n);  
  18.   
  19.     for ( int i = 0; i < n; ++i )  
  20.     {  
  21.         scanf("%s", buf);  
  22.         // 首先得到最小的放到buf[0]   
  23.         if ( buf[0] > buf[1] )  
  24.             swap(buf, buf+1);  
  25.         if ( buf[0] > buf[2] )  
  26.             swap(buf, buf+2);  
  27.         // 再排老二与老三  
  28.         if ( buf[1] > buf[2] )  
  29.             swap(buf+1, buf+2);  
  30.   
  31.         for ( int i = 0; i < 3; ++i )  
  32.             printf( "%c ", buf[i] );  
  33.   
  34.         printf( "\n" );  
  35.     }  
  36.   
  37.     return 0;  
  38. }  

作者:帅得不敢出门    c++哈哈堂31843264

阅读(5558) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~