湛江网站制作多少钱,石家庄做网站的公司哪个好,西安未央区网站建设,网页游戏平台代理一.问题:
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见#xff0c;我们假设一个表情符号是按下列格式输出的#xff1a;
[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合#xff0c;请你按用户的要求输出表情。
输入格式#xff1a;
…一.问题:
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见我们假设一个表情符号是按下列格式输出的
[左手]([左眼][口][右眼])[右手]现给出可选用的符号集合请你按用户的要求输出表情。
输入格式
输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []内。题目保证每个集合都至少有一个符号并不超过 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? \/ 二.思路 这题关键在于输入处理好输入表情字符只要能正确将表情字符正确存储进数组后面就简单很多具体看代码吧。 三.代码实现
#includestdio.h//将每一行输入的表情字符提取出来并存放进入合适的二维数组里面这里好好体会如何提取字符存放进入合适的二维数组里面
//同时要返回数组元素个数用于后面检验用户选择的序号是否存在
int input_arr(char arr[10][6])
{int elem 0;int i 0;char ch getchar();while (ch ! \n){if (ch [){ch getchar();while (ch ! ]){arr[elem][i] ch;i;ch getchar();}i 0;elem;}ch getchar();}return elem;
}//根据用户输入的字符序号依次输出表情字符组成表情
void print_arr(char hands[10][6], char eyes[10][6], char mouths[10][6], int choices[][5], int K,int h, int e, int m)
{for (int i 0; i K; i){//这里要检验用户选择的序号是否存在所有的序号不能大于对应数组的最大元素个数同时不能小于0不然就是不存在int flag1 (choices[i][0] h choices[i][0] 0) ? 1 : 0;int flag2 (choices[i][1] e choices[i][1] 0) ? 1 : 0;int flag3 (choices[i][2] m choices[i][2] 0) ? 1 : 0;int flag4 (choices[i][3] e choices[i][3] 0) ? 1 : 0;int flag5 (choices[i][4] h choices[i][4] 0) ? 1 : 0;if (flag1 flag2 flag3 flag4 flag5){printf(%s, hands[choices[i][0] - 1]); //打印左手putchar(();//打印左脸printf(%s, eyes[choices[i][1] - 1]);//打印左眼printf(%s, mouths[choices[i][2] - 1]);//打印嘴巴printf(%s, eyes[choices[i][3] - 1]);//打印右眼putchar());//打印右脸printf(%s, hands[choices[i][4] - 1]); //打印右手putchar(\n);}else{ //存在某个序号不存在输出提示语printf(Are you kidding me? %c%c\n,\\,\/);}}
}int main()
{// 输入表情符号char hands[10][6] { \0 };//用于存储手的符号char eyes[10][6] { \0 };//用于存储眼睛的符号char mouths[10][6] { \0 };//用于存储嘴巴的符号int h input_arr(hands);//输入手部符号返回手部符号的个数int e input_arr(eyes);//输入眼睛符号返回眼睛符号的个数int m input_arr(mouths);//输入嘴巴符号返回嘴巴符号的个数// 输入用户的选择序号int K 0;scanf(%d, K);int choices[100][5] { 0 };for (int i 0; i K; i){scanf(%d %d %d %d %d, choices[i][0], choices[i][1], choices[i][2], choices[i][3],choices[i][4]);}//输出结果print_arr(hands, eyes, mouths, choices, K, h, e, m);return 0;
}