字符串模拟

题目链接: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;
}


原文地址:https://www.cnblogs.com/wolf940509/p/6617098.html