杭电ACM 1004 一直WA
#include<stdio.h>#include<string.h>intmain(){intt;chars1[1000][15],s2[1000][15];inta[...
#include<stdio.h> #include<string.h> int main() { int t; char s1[1000][15],s2[1000][15]; int a[1000]={0}; int i,j,c=0; while(scanf("%d",&t)!=EOF) { getchar(); if(t==0) break; for(i=0;i<t;i++) gets(s1[i]); strcpy(s2[0],s1[0]); for(i=1;i<t;i++) { for(j=0;j<i;j++) if(strcmp(s1[i],s2[j])==0) a[i]+=1; if(a[i]==0) strcpy(s2[i],s1[i]); } for(i=0;i<t;i++) if(c<a[i]) { c=a[i]; j=i; } puts(s1[j]); } return 0; }
展开
1个回答
展开全部
你好这个可以用图(map)的函数来做 #include <iostream> #include <map> #include <string> using namespace std; int main(int argc, char *argv[]) { int n,max; map<string,int> m; map<string,int>::iterator it; string s; while(cin>>n,n) { m.clear(); max=0; while(n--) { cin>>s; m[s]++; } for(it=m.begin();it!=m.end();it++) max=max>it->second?max:it->second; for(it=m.begin();it!=m.end();it++) { if(max == it->second) { cout<<it->first<<endl; break; } } } return 0; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询