PAT : L1-059 敲笨鍾 (20 分) 題解

微博上有個自稱“大笨鐘V”的傢伙,每天敲鐘催促碼農們愛惜身體早點睡覺。爲了增加敲鐘的趣味性,還會糟改幾句古詩詞。其糟改的方法爲:去網上搜尋壓“ong”韻的古詩詞,把句尾的三個字換成“敲笨鍾”。例如唐代詩人李賀有名句曰:“尋章摘句老鵰蟲,曉月當簾掛玉弓”,其中“蟲”(chong)和“弓”(gong)都壓了“ong”韻。於是這句詩就被糟改爲“尋章摘句老鵰蟲,曉月當簾敲笨鍾”。

現在給你一大堆古詩詞句,要求你寫個程序自動將壓“ong”韻的句子糟改成“敲笨鍾”。

輸入格式:
輸入首先在第一行給出一個不超過 20 的正整數 N。隨後 N 行,每行用漢語拼音給出一句古詩詞,分上下兩半句,用逗號 ,分隔,句號.結尾。相鄰兩字的拼音之間用一個空格分隔。題目保證每個字的拼音不超過 6 個字符,每行字符的總長度不超過 100,並且下半句詩至少有 3 個字。

輸出格式:
對每一行詩句,判斷其是否壓“ong”韻。即上下兩句末尾的字都是“ong”結尾。如果是壓此韻的,就按題面方法糟改之後輸出,輸出格式同輸入;否則輸出 Skipped,即跳過此句。

輸入樣例:

5
xun zhang zhai ju lao diao chong, xiao yue dang lian gua yu gong.
tian sheng wo cai bi you yong, qian jin san jin huan fu lai.
xue zhui rou zhi leng wei rong, an xiao chen jing shu wei long.
zuo ye xing chen zuo ye feng, hua lou xi pan gui tang dong.
ren xian gui hua luo, ye jing chun shan kong.

輸出樣例:

xun zhang zhai ju lao diao chong, xiao yue dang lian qiao ben zhong.
Skipped
xue zhui rou zhi leng wei rong, an xiao chen jing qiao ben zhong.
Skipped
Skipped
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <memory.h>
#include <time.h>
#include <windows.h>
#include <windows.h>
#include <ctype.h>
int main()
{
    int cases;
    //freopen(\"Data.txt\",\"r\",stdin);
    scanf("%d", &cases);
    getchar();
    while (cases--)
    {
        char words[105];
        gets(words);
        //		for(int i = 0; ; i++)
        //		{
        //			scanf("%c", &words[i]);
        //			if(words[i] == '.')
        //				break;
        //		}
        int len = strlen(words);
        int flagl, flagr, flag;
        flagl = flagr = flag = 0;
        for (int i = 0; i < len - 3; i++)
        {
            if (words[i] == 'o' && words[i + 1] == 'n' && words[i + 2] == 'g' && words[i + 3] == ',')
                flagl = 1;
            if (words[i] == 'o' && words[i + 1] == 'n' && words[i + 2] == 'g' && words[i + 3] == '.')
            {
                flagr = 1;
                int cnt = 0;
                int j;
                for (j = i;; j--)
                {
                    if (words[j] == ' ')
                        cnt++;
                    if (cnt == 3)
                        break;
                }
                flag = j;
            }
        }
        if (flagl == 1 && flagr == 1)
        {
            for (int i = 0; i <= flag; i++)
                printf("%c", words[i]);
            printf("qiao ben zhong.");
        }
        else
            printf("Skipped");
        printf("\n");
    }
    // getchar();
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章