会不会有这样:
2
0000000
00
by JunGold @ 2017-07-28 15:09:32
6
321 32 407 135 13 217
by Albert @ 2017-07-31 22:37:06
想想:
10 和 1
程序:
101
实际:
110
by huangzirui @ 2017-08-13 16:45:19
@ JunGold
你输入一下
2
10 1
会是什么结果?
by huangzirui @ 2017-08-13 16:46:28
@[JunGold](/space/show?uid=39424)
在吗
by huangzirui @ 2017-08-13 16:51:46
就是说,
1。相等的就没必要比了,也不用循环。
2。如果长度相等,比谁大就可以了。
3。长度一大一小的话,就只要把小的增大,在自己的本身加上自己的字母,让长度达到相等,再进行“2”的比较。
by JunGold @ 2017-08-22 08:24:04
```cpp
#include<bits/stdc++.h>
using namespace std;
int b(string as,string bs)
{
int i=0;
if(as.size()<bs.size())//如jungold所说把他们长度比变相同
while(as.size()<bs.size())
{
as+=as[i];
i++;
}
if(as.size()>bs.size())
while(bs.size()<as.size())
{
bs+=bs[i];
i++;
}
if(as>bs)return 0;//比完了,OK结束完美收官
else return 1;
}
int main()
{
string a[20];//最多二十个。
int n;//几个字符串
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];//输入字符串
for(int i=0;i<n;i++)//用选择排序————我只会这个《》
{
int tmp=i;//假设一个数a[i]是最大的话。。tmp就是最大字符串所在的位置。
for(int j=i+1;j<n;j++)//从后面开始查找最大的数
if(b(a[j],a[tmp])==0)tmp=j;////如果a[j]比a[tmp]大的话就把最大字串的位置放到j;
string h=a[i];//交换我不说了
a[i]=a[tmp];
a[tmp]=h;
}
for(int i=0;i<n;i++)cout<<a[i];//输出
cout<<endl;
}
```
by dyzxjzx @ 2017-08-22 08:53:07
我仿照jungold所说写了一个程序
还好吧??
by dyzxjzx @ 2017-08-22 08:54:21