字符串排序
时间: 1ms 内存:64M
描述:
输入3个字符串,按字典序从小到大进行排序。
输入:
输入数据 有一行,分别为3个字符串,用空格分隔。
输出:
输出排序后的三个字符串,用空格分隔。
示例输入:
abcd cdef bcde
示例输出:
abcd bcde cdef
提示:
参考答案(内存最优[752]):
#include <string.h>
#include <stdio.h>
void Swap1(char s[3][128])
{
char tmp[128] = {0};
int i, j;
for (i = 0; i < 2; ++i)
{
for (j = 0; j < 2; ++j)
{
if (strcmp(s[j], s[j+1]) > 0)
{
strcpy(tmp, s[j]);
strcpy(s[j], s[j+1]);
strcpy(s[j+1], tmp);
}
}
}
}
int main(void)
{
char s[3][128];
scanf(" %s %s %s", s[0], s[1], s[2]);
Swap1(s);
printf("%s %s %s\n", s[0], s[1], s[2]);
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str1,str2,z;
cin>>str1>>str2>>z;
if(str1>str2&&str2>z)
cout<<z<<" "<<str2<<" "<<str1;
else if(str1>z&&z>str2)
cout<<str2<<" "<<z<<" "<<str1;
else if(z>str1&&str1>str2)
cout<<str2<<" "<<str1<<" "<<z;
else if(z>str2&&str2>str1)
cout<<str1<<" "<<str2<<" "<<z;
else if(str2>z&&z>str1)
cout<<str1<<" "<<z<<" "<<str2;
else if(str2>str1&&str1>z)
cout<<z<<" "<<str1<<" "<<str2;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。