【PAT】1052. 賣個萌 (20)
阿新 • • 發佈:2019-01-30
萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的:
左手[右手]
現給出可選用的符號集合,請你按使用者的要求輸出表情。
輸入格式:
輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括在一對方括號[]內。題目保證每個集合都至少有一個符號,並不超過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.輸出 printf(“Are you kidding me? @\/@\n”);
需要多加一個反斜槓,因為\是用來表示轉義字元的。
2.另外要考慮輸入的值小於等於0的情況
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char s[99],s1[12][5],s2[12][5],s3[12][5];
int get_string(char str[][5]){
int cnt=0;
gets(s);
for(int i=0;i<strlen(s);i++){
if(s[i]=='['){
cnt++;
i++;
int j;
for(j=0;s[i]!=']';i++,j++){
str[cnt][j]=s[i];
}
str[cnt][j]='\0';
}
}
return cnt;
}
int main()
{
int num1=get_string(s1);
int num2=get_string(s2);
int num3=get_string(s3);
int k,a[5];
scanf("%d",&k);
while(k--){
bool isOK=true;
for(int i=0;i<5;i++){
scanf("%d",&a[i]);
if(a[i]<=0)isOK=false;
}
if(isOK==false||a[0]>num1||a[1]>num2||a[2]>num3||a[3]>num2||a[4]>num1){
printf("Are you kidding me? @\\/@\n");
}
else{
printf("%s(%s%s%s)%s\n",s1[a[0]],s2[a[1]],s3[a[2]],s2[a[3]],s1[a[4]]);
}
}
return 0;
}