写博客之前已经做过几道ACM的题了,发现自己还真是渣的不行,每次都要通过度娘然后才能写出代码,希望题做多了以后能有所改观。
今天带来的是一道和ASCII码有关的简单问题,我的ACM题目的来源都是http://acm.nyist.net/JudgeOnline/problemset.php这个网址,有兴趣的朋友也可以去做做打发时间。
我写博客的目的也就是为了复习,和做笔记,以及我在做相关题查阅资料,发现有的地方网上说的不是很清楚,也在这里记录,希望能对别人有所帮助,也希望大神们批评指正。
ASCII码排序:
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
样例输出
2 qwe asd
e q w a d s
这道题在网上有很多人做,也比较简单没有什么问题,就是在想要等输入完所有样例,在一起输出结果这个问题上折腾了我很久,最后用了比较笨的方法。也希望别人能提出更好的方法,下面上代码。
#include<iostream>
using namespace std;
int main()
{
int testNum,i;
int j=0,count=0,k=0;
char n[4],m[100];
cin>>testNum;
if(testNum<=0)
{
return 0;
}
for(i=0;i<testNum;i++)
{
cin>>n;
if (n[0] > n[1]) swap(n[0], n[1]);
if (n[1] > n[2]) swap(n[1], n[2]);
if (n[0] > n[1]) swap(n[0], n[1]);
m[j]=n[0];
m[j+1]=n[1];
m[j+2]=n[2];
j=j+3;
}
while(k<3*testNum)
{
cout<<m[k]<<" "<<m[k+1]<<" "<<m[k+2]<<endl;
k=k+3;
}
}
希望大家批评指正!