题目大意就是编写一个程序,从给出的奥斯卡提名奖当中找出最佳影片。最佳影片的要求如下
1.所有的电影都有可能参选最佳影片
2.在列表中被提名最多的影片应当被选为最佳影片
3.如果多部影片都被提名相同的次数,则我们选择第一个出现的影片为最佳影片
样例1
最佳视觉奖
A
B
C
最佳声效奖
A
D
E
输出的是A,因为A出现了两次。
【解析】
这道题的话其实也就是比较那部电影出现的次数多,所以就需要一个数组,和一个字符串数组,在循环中如果发现先前已经有出现过的电影则对应的下标在int数组中+1,此处应用strcmp来比较是否出现过这部电影若没出现过则加上这部电影名,用strcpy函数进行拷贝字符串。
#include<iostream>
#include<string>
#include<cstdio>
#include<string.h>
using namespace std;
char c[1001][85];
char a[80];
char b[80];
int panduan[1001]={0};
int k=0;
int facs(char a[])
{
int i,j;
for(i=0;i<k;i++)
{
if(strcmp(a,c[i])==0)
return i;
}
strcpy(c[k],a);
k++;
return k-1;
}
int main()
{
int n,m,o;
int i,j,p,q=0,l;
string s;
cin>>n;
for(i=0;i<n;i++)
{
cin>>s;
cin>>o;
for(j=0;j<o;j++)
{
scanf("%s",a);
p=facs(a);
panduan[p]++;
}
}
for(i=0;i<k;i++)
{
if(panduan[i]>q)
{
q=panduan[i];
l=i;
}
}
cout<<c[l];
return 0;
}