您的位置:首页 > 其它

每天一道ACM(二)

2016-06-15 16:18 337 查看
写博客之前已经做过几道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;
}
}


希望大家批评指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: