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容器中。建議讀者讀入一行之後將收集到的所有符號輸出,進行核對,檢查自己有沒有處理錯誤。
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)
『題目』 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、
【PAT】1052. 賣個萌 (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