1. 程式人生 > >PAT.1052. 賣個萌 (20)--易錯點

PAT.1052. 賣個萌 (20)--易錯點

題目描述:
萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的:

左手[右手]
現給出可選用的符號集合,請你按使用者的要求輸出表情。

輸入格式:

輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括在一對方括號[]內。題目保證每個集合都至少有一個符號,並不超過10個符號;每個符號包含1到4個非空字元。

之後一行給出一個正整數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.對字串的切割,選出需要的符號資訊。因為不知道符號的個數,筆者使用string容器讀入一行(注意空格的存在),之後根據方括號為判斷依據取出符號放在相應的vector容器中。建議讀者讀入一行之後將收集到的所有符號輸出,進行核對,檢查自己有沒有處理錯誤。

[email protected]\/@ 中含有轉義字元‘\’因此需要在其前面再加上一個’\’。
3.使用者輸入的序號使用1開始的,因此一定要對其進行判斷,不能超過了容器的範圍,不然出現段錯誤。
請看程式碼:

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    vector<string> face[3];   //存放手的可選符號集face[0],存放眼的可選符號集face[1],存放口的可選符號集face[2]. 
string str; //讀入每一行的字元 for(int i=0;i<3;i++){ getline(cin,str); //因為可能有空格在字串之間,因此使用getline for(int j=0;j<str.length();){ if(str[j]=='['){ //如果是左方括號 string sign; //存放一個符號的當前非空字元 while(str[++j]!=']'&&j<str.length()){ //只要沒有找右方括號,且沒有訪問完字串 sign+=str[j]; //將這些非空字元組成一個字串,最終形成一個符號 } face[i].push_back(sign); //將這個符號放入相應的符號集中 } else j++; //如果不是左方括號,那麼看下一個 } } int k; cin>>k; //讀入使用者的請求個數 for(int i=0;i<k;i++){ int lh,le,m,re,rh; //分別是左手(left hand)lh,左眼le,口m,右眼re,右手rl。 cin>>lh>>le>>m>>re>>rh; if(lh>=1&&lh<=face[0].size()&&le>=1&&le<=face[1].size()&&m>=1&&m<=face[2].size()&&re>=1&&re<=face[1].size()&&rh>=1&&rh<=face[0].size()){ //注意這一串的判斷比較長,使用者輸入的序號(從一開始)一定要在範圍內呀。不然執行會出現段錯誤的。 cout<<face[0][lh-1]<<'('<<face[1][le-1]<<face[2][m-1]<<face[1][re-1]<<')'<<face[0][rh-1]<<endl; //按照格式輸出表情即可 } else{ //如果使用者輸入的學號非法,那麼輸出字串 cout<<"Are you kidding me? @\\/@"<<endl; } } }

相關推薦

PAT.1052. (20)--

題目描述: 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: 左手[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選符號

PAT Basic 1052. (20)(C語言實現)

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設

1052. (20)-PAT乙級真題

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的:[左手]([左眼][口][右眼])[右手]現給出可選用的符號集合,請你按使用者的要求輸出表

PAT】(B)1052 (20)

『題目』 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、

PAT1052. (20)

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: 左手[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括

PAT——1052.

ont show 通過 tps auth 做的 har true 正整數 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按用戶的要求輸

PAT 1052

https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104   萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口

PAT 1052 python(非零返回)

1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手] ([左眼] [口] [右眼]) [右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式

PAT-1052

1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在

PAT 1052 (字串 難度2) - 詳細題解

題本身並不是很難, 只是其中涉及的知識, 如果學習時候不細心的話…還真不一定知道 比如題上的這些特殊字元, 不能夠用一個char來存, 必須用char陣列或者是string來存 主要就是輸入有點麻煩, 但語言用熟練的話也就好了 #include <cstdio> #incl

PAT-乙-1052 1052 20 分)

程式碼 #include <iostream> #include <vector> using namespace std; const int SIZE = 3; int main() { string s[SIZE];

PAT乙級 1052

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符

1052 20 分)//部分正確

    1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求

PAT 乙級 1052

1052 賣個萌 (20 point(s)) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸

1052 20 分)

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選

1052

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個

1052 ——c實現

1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸

PAT-BASIC1052——

題目描述: 知識點:雜湊表 思路:用三個陣列分別記錄手、眼、口的表情 注意點: (1)若使用者選擇的序號不存在,需要輸出"Are you kidding me? @\/@"。這裡面的"\"需要轉義輸出為"\\"。 (2)對於整行字串,最好用getline

1052.

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可

1052.

要注意輸出“Are you kidding me? @\/@”時,在雙引號中表示‘\’要用雙斜槓表示,否則會出錯。#include <iostream> #include <vecto