题目链接:https://vijos.org/p/1902
这题用case更好,注意其中getchar()的用法
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<string> #include<vector> using namespace std; const int maxn=10; int num[maxn]; int main() { char ch; int t; scanf("%d",&t); while((ch=getchar())==' '); for(int cas=1;cas<=t;cas++) { memset(num,0,sizeof(num)); for(;(ch=getchar())!=EOF;) { if(ch==' ') break; switch(ch) { case 'g': ++num[0]; break; case 'o': ++num[1]; break; case 'd': ++num[2]; break; case ' ': ++num[3]; break; case 'm': ++num[4]; break; case 'r': ++num[5]; break; case 'n': ++num[6]; break; case 'i': ++num[7]; break; default: break; } } num[0]/=2; num[1]/=3; num[6]/=2; int ans=1001; for(int i=0;i<8;i++) if(ans>num[i]) ans=num[i]; printf("Case #%d: ",cas); printf("%d ",ans); } return 0; }