正規表現のPAT1052 ---------予備的な理解

Mengmengピリダジン絵文字は通常、「手」、「目」の3つの主要部分の「口」が構成されています。簡単にするために、我々は記号式は次の形式で出力されますと仮定します。

[左手]([左眼][口][右眼])[右手]

今、ユーザーの要件式ます出力、記号のセットの選択肢を与えられました。

入力フォーマット:

まず、ショットへの入力を順次に対応する上部の3行は、任意のシンボルは、口に目を設定します。各シンボルは、角括弧で囲まれた  []内部。タイトル各セットは、少なくとも1つのシンボルを持って、シンボルが10以下であることを確認してください。各シンボルは、4つの非ヌル文字に1が含まれています。

行の後に正の整数K、ユーザ要求の数が与えられます。各ユーザは、シンボルの選択が与えられ、次いでK行、左手のため、左眼、口、目、手 - ちょうどそれぞれのセット(1から始まる)内のシンボル数を与えるために、数字の間の空間分離しました。

出力フォーマット:

各ユーザ要求、生成された出力ライン発現のため。ユーザーが選択した場合、シリアル番号は、その後、出力は存在しません  Are you kidding me? @\/@

サンプル入力:

[╮][╭][o][~\][/~]  [<][>]
 [╯][╰][^][-][=][>][<][@][⊙]
[Д][▽][_][ε][^]  ...
4
1 1 2 2 2
6 8 1 5 5
3 3 4 3 3
2 10 3 9 3

出力例:

╮(╯▽╰)╭
<(@Д=)/~
o(^ε^)o
Are you kidding me? @\/@
/ * * 
 * 1.読み取りシンボル
 * - getchar関数()= '\ N-' ;! 
 * -正規表現の"%[^]]"のシンボルを読ん; 
 * -シンボルは、統計の長さを設定します。
 * 2.円テキスト実際のサイズ以上の文字することができる
 * 3ヤンのテキストは、コマンドラインウィンドウに存在するケースを表示することができない、あなたが本当に正しさを判断するために、あなたの答えを提出する必要があります。
 * / 
書式#include <stdio.hに> int型GETchar型 ARR [] [ 5 ]) {
     int型 I = 0 ; // ストアシンボルインデックスチャーC; 
     ながら(!(C = GETCHAR())= ' \ N- ' ){
         IF(C == ' [ ' ){ 
            scanfの(" %の[^] ]

 
    "、ARR [I ++]); // ']'読み取る文字前
        } 
    } 
    リターンI; 
} 
int型のmain(){
     char型ハンド[ 10 ] [ 5 ]、アイ[ 10 ] [ 5 ]、口[ 10 ] [ 5 ];
     int型 cnt_hand = GET (ハンド);
     INT cnt_eye = GET (アイ);
     INT cnt_mouth = GET (口);
     INT K; // ユーザの数がリクエスト 
    (scanfのを" %のD "、&K)。
    一方、(K--> 0 ){
         int型lhand、leye、M、ライ、rhand。
        scanf関数(" %D%D%D%D%D "、&​​lhand、&leye、&M、およびライ、&rhand)。
        もし(lhand> cnt_hand || lhand < 1 || leye> cnt_eye 
             || leye < 1 || M> cnt_mouth || M < 1つの ||ライ> cnt_eye ||ライ< 1  
            || rhand> cnt_hand || rhand < 1 ){ 
            のprintf(" あなたは私をからかっている@ \\ / @ N \?" );" %S(%S%S%S)%S \ n "、手[lhand- 1 ]、眼[leye- 1 ]、口[M- 1 ]、眼[reye- 1 ]、手[rhand- 1 ]); 
        } 
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/BananaMan/p/11271460.html