我只想说你这题意能不能说清楚点。。- -!。害的我WA了老多。我本以为是每次都是输出相同的this is an ...的。
#include<iostream> #include<cstdio> #include<cstring> #include<map> using namespace std; char s[10000],str[100000]; int main() { int n,m,i,j,k,l; while(~scanf("%d",&n)) { j=n; map<string,int>mp; map<string,int>::iterator cnt; getchar(); while(j--) { int t=0,tmp=0; gets(s); l=strlen(s); for(i=0;i<l;i++) { if(s[i]>='A'&&s[i]<='Z') { str[tmp++]=s[i]+32; } else str[tmp++]=s[i]; } str[tmp]='\0'; mp[str]++; } double x; for(cnt=mp.begin();cnt!=mp.end();cnt++) { x=(cnt->second*100.0)/(n*1.0); printf("%s %.2lf",cnt->first.c_str(),x); printf("%c",'%'); printf("\n"); } } return 0; }