• Flesch Reading Ease (poj 3371)


    题意:

      给出一篇规范的文章,求其 句子数、单词数 和 音节数把这3个值代入题目给出的公式,输出其结果,保留2位小数。

      标记单词分隔符: 逗号(,) 和 空格( )

      句子分隔符:句号(.) 问号(?) 冒号(:) 分号(;) 感叹号(!)

      音节处理要求:

      (1)当单词总长度<=3时,音节数无条件+1

      (2) 当单词总长度>3时,单词中每出现一个元音字母(a、e、i、o、u、y),音节数+1,但是连续的(>=2)元音字母只按1个音节计算,且当单词后缀为-es、-ed和-e时,后缀的元  音字母e不列为音节数计算。但是后缀-le例外,要计算音节数。

    ans=206.835-1.015*(danci/jvzi)-84.6*(yinjie/danci)

    #include<cstdio>
    #include<iostream>
    #define N 1010
    using namespace std;
    char ci[N];
    double danci,jvzi,yinjie;
    bool yuan(char c)
    {
        if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='y')return true;
        return false;
    }
    int main()
    {
        char c;int num=0;
        while(scanf("%c",&c)!=EOF)
        {
            if(c==','||c==' ')
            {
                if(num<=3)yinjie++;
                else
                {
                    for(int i=1;i<=num;i++)
                    {
                        if(yuan(ci[i])&&!yuan(ci[i-1]))
                        {
                            if((i==num-1&&ci[i]=='e'&&(ci[num]=='s'||ci[num]=='d'))||(i==num&&ci[i]=='e'&&ci[num-1]!='l'));
                            else yinjie++;
                        }
                    }
                }
                danci++;
                num=0;
            }
            else if(c=='.'||c=='?'||c==':'||c==';'||c=='!')jvzi++;
            else ci[++num]=c;
        }
        double ans=206.835-1.015*(danci/jvzi)-84.6*(yinjie/danci);
        printf("%.2lf",ans);//G++不能用%lf ,要用%f 
        return 0;
    }
  • 相关阅读:
    最短路必经点(边)
    [HNOI2008]越狱
    【模版】卢卡斯定理
    偶数
    [USACO17FEB]Why Did the Cow Cross the Road I S
    [USACO17FEB]Why Did the Cow Cross the Road II S
    [USACO07NOV]电话线Telephone Wire
    [JSOI2007]祖码Zuma
    单人纸牌_NOI导刊2011提高(04)
    [USACO13OPEN]重力异常
  • 原文地址:https://www.cnblogs.com/harden/p/5998265.html
Copyright © 2020-2023  润新知