首页 > 代码库 > ASCII码排序
ASCII码排序
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 |
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。 |
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。 |
Sample Input
qwe asd zxc |
Sample Output
e q w a d s c x z |
要让三个数从小到大排,顺序就是:
比较1,2两个数。如果第一个数比第二数大,把这两个数交换,来保证前面两个数按升序排列。
比较2,3两个数。如果第二个数比第三数大,把这两个数交换,来保证后面两个数按升序排列。
经过上面两步,最大的数已经被移到最后。再重复一次第一步。保证三个数都是按升序来排列。
虽然你也可以用排序算法对它进行排序,但那就把问题复杂化了。做ACM的题目,就是要充分利用题目给出的条件(本题一明确指出输入的只有三个字符)。选择最优算法,而不是最通用的算法。
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 5 int main() 6 { 7 char n[4]; 8 9 while (cin >> n)10 {11 if (n[0] > n[1]) swap(n[0], n[1]);12 if (n[1] > n[2]) swap(n[1], n[2]);13 if (n[0] > n[1]) swap(n[0], n[1]);14 cout << n[0] <<“ ”<< n[1] <<“ ”<< n[2] << endl;15 }16 17 return 0;18 }
ASCII码排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。