C题 Missing
思路
①输入正确的字符串 s 、学生人数 n 和学生提交的答案 a[i].ss 。
②因为答案要按字典序输出,所以先排序。
③把学生提交的答案 a[i].ss 依次和正确的字符串 s 进行比较,求出相似度 a[i].k ,并用 maxn 存储最大相似度。
④输出。
代码
using namespace std;
int n,maxn;
string s;
struct Node
{
string ss;
int k;
}a[101];//结构体
bool cmp(Node a,Node b)
{
return a.ss>b.ss;
}
int main()
{
cin>>s>>n;
for(int i=1;i<=n;i++) cin>>a[i].ss;
sort(a+1,a+n+1,cmp);//排序
for(int i=1;i<=n;i++)
{
if(s.size()!=a[i].ss.size())
{
a[i].k=0;
}
else
{
for(int j=0;j<s.size();j++)
{
if(s[j]==a[i].ss[j]) a[i].k++;
}
maxn=max(maxn,a[i].k);//最大相似度比较
}
}
for(int i=n;i>=1;i--)
{
if(a[i].k==maxn) cout<<a[i].ss<<endl;//输出
}
return 0;
}