不知道为什么。我用结构体和冒泡排序写的(不存在卡时间数组范围的问题,毕竟是道水题),其他四个点都能过,自己随便输数据也都和预期一样,但第二个点怎么都输不出预期的结果,我也检查不出错,望大佬帮助。 代码:
#include<bits/stdc++.h>
using namespace std;
struct num
{
string s;
int lenx,num;
}a[21];
int main()
{
int n;
string t1;
int t2;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>a[i].s;
a[i].lenx=a[i].s.size();
cout<<a[i].lenx<<endl;
a[i].num=i;
}
for (int i=1;i<=n-1;i++)
{
for (int j=i+1;j<=n;j++)
{
if (a[i].lenx==a[j].lenx)
{
if(a[i].s>a[j].s)
{
t1=a[j].s;
a[j].s=a[i].s;
a[i].s=t1;
t2=a[j].num;
a[j].num=a[i].num;
a[i].num=t2;
}
}
else if(a[i].lenx>a[j].lenx)
{
t1=a[j].s;
a[j].s=a[i].s;
a[i].s=t1;
t2=a[j].num;
a[j].num=a[i].num;
a[i].num=t2;
}
}
}
cout<<a[n].num<<endl<<a[n].s<<endl;
return 0;
}