PAT (Basic Level) Practise (中文)1052. 卖个萌 (20)

来源:互联网 发布:c语言数组初值 编辑:程序博客网 时间:2024/06/06 01:49
  1. 卖个萌 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:

左手[右手]
现给出可选用的符号集合,请你按用户的要求输出表情。

输入格式:

输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号[]内。题目保证每个集合都至少有一个符号,并不超过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? @\/@

Tip:参考了网上的代码,重点在于依据[ ]来判断是否存在,并且提取里面的字符

#include <stdio.h>#include <stdlib.h>#include <string.h>int flag = 0;  //标记用户选择的序号是否存在 /*查找函数*/void search(int num, char *src, char *dst, int *p){    int count = 0;    unsigned int j = 0;    int k;    for(j = 0; j < strlen(src); j++)    {        if(src[j] == '[')        {            count++;        }        if(count == num)        {            flag = 1; //存在            for(k = j + 1; src[k] != ']'; k++)            {                dst[(*p)++] = src[k];            }            break;        }    }}int main(){    char a[3][50] = {{0}};    int i = 0;    for(i = 0; i < 3; i++)    {        gets(a[i]);    }    int n;    scanf("%d", &n);    int lh, le, m, re, rh;    char temp[50] = {0};;    int p = 0;    for(i = 0; i < n; i++)    {        p = 0;        memset(temp, 0, sizeof(temp));        scanf("%d %d %d %d %d", &lh, &le, &m, &re, &rh);        //left hand        search(lh, a[0], temp, &p);        if(flag)        {            temp[p++] = '(';            //left eye            flag = 0;            search(le, a[1], temp, &p);            if(flag)            {                flag = 0;                //mouth                search(m, a[2], temp, &p);                if(flag)                {                    flag =0;                    //right eye                    search(re, a[1], temp, &p);                    if(flag)                    {                        temp[p++] = ')';                        flag = 0;                        //right hand                        search(rh, a[0], temp, &p);                        if(flag)                        {                            temp[p] = '\0';                            printf("%s\n", temp);                        }                        else                        {                            printf("Are you kidding me? @\\/@\n");                        }                    }                    else                    {                        printf("Are you kidding me? @\\/@\n");                    }                }                else                {                    printf("Are you kidding me? @\\/@\n");                }            }            else            {                printf("Are you kidding me? @\\/@\n");            }        }        else         {            printf("Are you kidding me? @\\/@\n");        }    }    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 儿童7岁还坐不住怎么办 孩子缺锌手蜕皮裂开怎么办 宝宝读幼儿园哭怎么办 幼儿上课爱讲话怎么办 孩子上课总是乱跑怎么办 孩子听不懂老师讲课怎么办 高一上课听不懂怎么办 上课学生纪律差怎么办 一年级学生认字少怎么办 孩子上课做不住怎么办 幼儿园小孩上课乱跑怎么办 孩子挑食不爱吃饭怎么办 幼儿园孩子不听指令怎么办 1岁宝宝多动症怎么办 3岁宝宝胆小怎么办 爱挑食的孩子怎么办 小孩上课经常发呆怎么办 小孩不爱吃饭挑食怎么办 一年级小孩学习不好怎么办 宝宝上课坐不住怎么办 八个月婴儿拉稀怎么办 八个月孕妇拉稀怎么办 孩子好动爱喊怎么办 八个月小孩发烧怎么办 孩子好动怎么办学龄前教育 小孩好动症该怎么办 小孩子好动症该怎么办 怀孕5个月胎死亡怎么办 小孩多动调皮怎么办 手心老是出汗是怎么办 孩子吃饭特别慢怎么办 小孩子老想睡觉怎么办 孩子下午上课犯困怎么办 小孩子有多动症该怎么办 初中写作业犯困怎么办 孩子晚上学习困怎么办 小孩子容易兴奋激动怎么办 中考时过度兴奋怎么办 小孩兴奋不睡觉怎么办 孩子突然反常不听话怎么办? 婴儿亢奋不睡觉怎么办