_MOOC_5_3
字符串排序算法(20分)
题目内容:
输入6个不等长字符串,将这6个字符串按照字符串长度排序,并按从长到短的顺序输出字符串。
输入格式:输入六个长度不超过45的不等长字符串
输出格式:
输出按长度排序后的字符串,字符串之间用回车隔开
输入样例:
美国
巴基斯坦
乌兹别克斯坦
哈萨克斯坦
俄罗斯
中华人民共和国输出样例:
中华人民共和国
乌兹别克斯坦
哈萨克斯坦
巴基斯坦
俄罗斯
美国
代码如下:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[7][45]={'\0'},a[45]={'\0'};//养成初始化字符数组的习惯
int i;
for(i=0;i<6;i++)
{
cin>>str[i];
}
//输入字符数组 ,按行以字符串形式输入
for(int j=0;j<5;j++)
for(i=0;i<5;i++)
{
if(strlen(str[i])<strlen(str[i+1]))
{
strcpy(a,str[i]);
strcpy(str[i],str[i+1]);
strcpy(str[i+1],a);
}
}//字符数组不能整体赋值,只能用strcpy();这个拷贝函数
for(i=0;i<6;i++)
{
cout<<str[i]<<endl;
}
return 0;
}