问题描述
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
问题分析
Problem Analyse
本题是为C语言初学者提供的。
前置知识:if判断语句的语法
Algorithm Analyse
要让三个数从小到大排,顺序就是:
- 比较1,2两个数。如果第一个数比第二数大,把这两个数交换,来保证前面两个数按升序排列。
- 比较2,3两个数。如果第二个数比第三数大,把这两个数交换,来保证后面两个数按升序排列。
- 经过上面两步,最大的数已经被移到最后。再重复一次第一步。保证三个数都是按升序来排列。
虽然你也可以用排序算法对它进行排序,但那就把问题复杂化了。做ACM的题目,就是要充分利用题目给出的条件(本题一明确指出输入的只有三个字符)。选择最优算法,而不是最通用的算法。
算法实现
通过前面的问题分析,可以看出本题要实现排序。你可以选择任何一门你熟悉的语言编写。这里我用的是C++,因为C++为了提高开发效率,已经为我们准备好了很多常用的算法。比如该题可以直接调用sort()函数。ACM中,效率才是关键!