ASCII码排序【HDU - 2000】
题目
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Time limit | Memory limit | OS | Source |
---|---|---|---|
1000 ms | 32768 kB | Windows | C语言程序设计练习(一) |
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Example
Input | Output |
---|---|
qwe | e q w |
asd | a d s |
zxc | c x z |
问题链接: HDU - 2000
问题描述
将用户输入的三个字母根据ASCII码大小进行排序,再从小到大输出,并在中间插入空格
问题分析
用户输入的字母可以存于一个字符串变量中,然后对其中的元素根据ASCII码值进行排序
AC通过代码如下
#include<iostream>
using namespace std;
int main()
{
char a[3];
while (cin >> a)
{
if (a[0] > a[1]) swap(a[0], a[1]);
if (a[0] > a[2]) swap(a[0], a[2]);
if (a[1] > a[2]) swap(a[1], a[2]);
cout << a[0] << " " << a[1] << " " << a[2] << endl;
}
return 0;
}
代码分析
由于元素较少(三个)就没有用排序算法了
而是用几次的判断以及交换实现了
(可能用排序算法会高级点,或者通用点)
最后输出排序之后的字符串
cout << a[0] << " " << a[1] << " " << a[2] << endl;
while和endl像是经历过的题的基本的操作了