站点图标 陌路寒暄

字符串排序

字符串排序

时间: 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; 
    } 

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版