顺序输出、

描述

输入三个字符串,按字符串的长度由小到大的顺序输出。

输入

3行字符串

输出

按照长度从小到大输出成3行

输入样例 1 

cde ef*
afg#####
abc*******58

输出样例 1

cde ef*
afg#####
abc*******58

输入样例 2 

abcd
de4
a

输出样例 2

a
de4
abcd

代码一(如下):

#include 
#include 
using namespace std;
int main()
{
	string a, b, c,t;
	getline(cin, a);
	getline(cin, b);
	getline(cin, c);
	if (a.size() > b.size())
	{
		t = a;
		a = b;
		b = t;
	}
	if (a.size() > c.size())
	{
		t = a;
		a = c;
		c = t;
	}
	if (b.size() > c.size())
	{
		t = b;
		b = c;
		c = t;
	}
	cout << a << endl << b << endl << c;
	return 0;
}

代码二(如下):调用函数+指针

#include 
#include 
using namespace std;
void exchange(string*, string*);
int main()
{
	string a, b, c;
	string* p1, * p2, * p3;
	getline(cin, a);
	getline(cin, b);
	getline(cin, c);
	p1 = &a; p2 = &b; p3 = &c;
	if (a.size() > b.size())
	{
		exchange(p1, p2);
	}
	if (a.size() > c.size())
	{
		exchange(p1, p3);
	}
	if (b.size() > c.size())
	{
		exchange(p2, p3);
	}
	cout << *p1 << endl << *p2 << endl << *p3;
	return 0;
}
void exchange(string *x, string *y)
{
	string t;
	t = *x;
	*x = *y;
	*y = t;
}

代码三(如下):选择排序

#include 
#include 
using namespace std;
int main()
{
	string str[3];
	for (int i = 0; i < 3; i++)
	{
		getline(cin, str[i]);
	}
	for (int i = 0; i < 2; i++)
	{
		int k=i;
		for (int j = i + 1; j < 3; j++)
		{
			if (str[j].size() < str[k].size())
				k = j;
		}
		string t;
		t = str[i];
		str[i] = str[k];
		str[k] = t;
	}
	for (int i = 0; i < 3; i++)
	{
		cout << str[i] << endl;
	}
	return 0;
}

你可能感兴趣的:(ACM作业,c++)