程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 3371 Flesch Reading Ease (模擬題)

POJ 3371 Flesch Reading Ease (模擬題)

編輯:C++入門知識

Flesch Reading Ease


題目很水,就是看懂題就行。

題意:

  給出一篇規范的文章,求其 句子數、單詞數 和 音節數把這3個值代入題目給出的公式,輸出其結果,保留2位小數。

  標記單詞分隔符: 逗號(,) 和 空格( )

  句子分隔符:句號(.) 問號(?) 冒號(:) 分號(;) 感歎號(!)

  音節處理要求:

  (1)當單詞總長度<=3時,音節數無條件+1

  (2) 當單詞總長度>3時,單詞中每出現一個元音字母(a、e、i、o、u、y),音節數+1,但是連續的(>=2)元音字母只按1個音節計算,且當單詞後綴為-es、-ed和-e時,後綴的元  音字母e不列為音節數計算。但是後綴-le例外,要計算音節數。


思路:沒什麼好說的,模擬水題,不知道為什麼沒人做0.0


#include 
#include 

bool is_yuan(char c)
{
    if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'y')
        return true;
    if(c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y')
        return true;
    return false;
}

int main()
{
    char s[1010];
    int sentences = 0, words = 0, syllables = 0;
    while(~scanf("%s", s))
    {
        bool qian = false;
        int len = strlen(s);
        if(len <= 3)
        {
            syllables++;
            //printf("1 ");
        }
        else
        {
            if(is_yuan(s[0]))
            {
                syllables++;
                qian = true;
                //printf("%d ", 0);
            }
            for(int i = 1; i < len; i++)
            {
                if(is_yuan(s[i]) && !qian)
                {
                    syllables++;
                    qian = true;
                   // printf("%d ", i);
                }
                else if(!is_yuan(s[i]))
                {
                    qian = false;
                }
            }
            if(s[len-1] == ',' || s[len-1] == '.' || s[len-1] == ';' || s[len-1] == '!' || s[len-1] == '?' || s[len-1] == ':')
            {
                if((s[len-2] == 'e' && s[len-3] != 'l' && !is_yuan(s[len-3])) || (s[len-2] == 's' && s[len-3] == 'e' && !is_yuan(s[len-4])) || (s[len-2] == 'd' && s[len-3] == 'e' && !is_yuan(s[len-4])))
                {
                    syllables--;
                    //printf("*");
                }
            }
            else
            {
                if((s[len-1] == 'e' && s[len-2] != 'l' && !is_yuan(s[len-2])) || (s[len-1] == 's' && s[len-2] == 'e' && !is_yuan(s[len-3])) || (s[len-1] == 'd' && s[len-2] == 'e' && !is_yuan(s[len-3])))
                {
                    syllables--;
                    //printf("#");
                }
            }
        }
        if(s[len-1] == '.' || s[len-1] == ';' || s[len-1] == '!' || s[len-1] == '?' || s[len-1] == ':')
        {
            sentences++;
        }
        words++;
        //puts("");
    }
    //printf("%d %d %d\n", syllables, words, sentences);
    printf("%.2f\n", 206.835-1.015*words/sentences-84.6*syllables/words);

    return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved