杭电 HUDOJ
2000: ASCII码排序
原题链接
描述
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
qwe
asd
zxc
样例输出
e q w
a d s
c x z
三种方法:
- 字符串组
- 基础排序
- 三目运算符
//用字符串组写
#include<iostream>
using namespace std;
int main()
{
char a[3],t;
int n=3,i,j;
while(cin>>a[0]>>a[1]>>a[2])//可改为 while(gets(a));
{
for(j=0;j<n-1;j++)
{for(i=0;i<n-1-j;i++){
if(a[i]>a[i+1]){
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
} } }
cout<<a[0]<<" "<<a[1]<<" "<<a[2]<<endl;
}
return 0;
}
//基础排序
#include<iostream>
using namespace std;
int main()
{
char a, b, c, d;
int x, y, z, t;
while (cin>>a>>b>>c)
{
x = a;
y = b;
z = c;
if (x > y)
{
t = x;
x = y;
y = t;
}
if (x > z)
{
t = x;
x = z;
z = t;
}
if (y > z)
{
t = y;
y = z;
z = t;
}
cout<<(char)x<<" "<<(char)y<<" "<<(char)z<<endl;;
}
}
#include <iostream>
using namespace std;
int main()
{
char a,b,c,d,x,y,z;
while(cin>>a>>b>>c)
{
x=a<b?a:b;
x=x<c?x:c;
z=a>b?a:b;
z=z>c?z:c;
y=a+b+c-x-z;
cout<<x<<" "<<y<<" "<<z<<endl;
}
return 0;
}