杭电1004题,自己测试结果都OK,为什么总是WA呢?求指出错误之处。
#include <iostream>#include <string>using namespace std;void main(){ int n,i,j,max=0; cin>>n; while(n!=0) { string str[1000], color; for(i=0;i<1000;i++) str[i]=""; int num[1000]={0}; for( i=1;i<=n;i++) { cin>>color; for( j=1;j<i;j++) { if(str[j]==color) { num[j]++; break; } } if(j==i) { str[i]=color; num[i]++; } } for(i=1;i<=n ;i++) { if(num[i]>num[max]) { max=i; } } cout<<str[max]<<endl; max=0; cin>>n; }}#include <iostream>#include <string>#include <map>using std::string;using std::map;using std::cout;using std::cin;using std::endl;int main(){ int nCount,i,nMax; string strColor; map<string,int> ColorSet; cin>>nCount; map<string,int>::iterator iterRes; while(nCount != 0) { i = 0; ColorSet.erase(ColorSet.begin(),ColorSet.end()); while(i<nCount) { ++i; cin>>strColor; ++ColorSet[strColor]; } iterRes = ColorSet.begin(); nMax = iterRes->second; for (map<string,int>::iterator iter = ColorSet.begin();iter != ColorSet.end();iter++) if (iter->second>nMax) { iterRes = iter; nMax = iter->second; } cout<<iterRes->first<<endl; cin>>nCount; } return 0;}