输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
问题链接(https://vjudge.net/problem/hdu-2000)
问题简述:输入三个字符,根据ASCALL码值的大小来对各字符进行从小到大的排序
问题分析:由于涉及到排序问题,有多种思路可走:1,可以通过选择排序;2,可以通过冒泡排序,3,可以通过IF语句的应用来进行排序。将最大的字符及最小的字符找出来。
程序分析:定义一个函数paixu将最大的字符及最小的字符找出来;并在主函数中进行函数调用
AC通过的代码如下
#include<iostream>
using namespace std;
void paixu(char*p)
{
if(p[0]<p[1])
{
int t=p[1];
p[1]=p[0];
p[0] = t;
}//p[0]大
if (p[0] < p[2])
{
int t = p[2];
p[2] = p[0];
p[0] = t;
}//p[0]最大
if (p[2] > p[0])
{
int t = p[0];
p[0] = p[2];
p[2] = t;
}//现在p[2]小
if (p[2] > p[1])
{
int t = p[1];
p[1] = p[2];
p[2] = t;
}//现在p[2]最小
cout << p[2];
for (int i = 1; i >=0; i--)
{
cout << " " << p[i] ;
}
cout << endl;
}
int main()
{
char p[3] = { 0 };
while (cin >> p[0]>>p[1]>>p[2])
{
paixu(p);
}
}
网友评论