PTA 乙级 1052 卖个萌 (20分) C++
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PTA 乙级 1052 卖个萌 (20分) C++,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1801字,纯文字阅读大概需要3分钟。
内容图文
![PTA 乙级 1052 卖个萌 (20分) C++](/upload/InfoBanner/zyjiaocheng/627/cdefa360ec8842b98c0894b371065fe5.jpg)
使用格式化字符串"%[^...]"
,这种字符串的作用类似于"%s"
,前者使scanf读到^后面的字符,但是后者会读取字符串到空白字符(空格、换行、制表符等等),相当于用户可以自定义scanf的行为(只能用char字符串去存储输入得到的格式化字符串)
利用vector<vector<string>>来存储所有表情,进行push_back()括号内必须为vector<string>(意味着还需要创建另一个vector存储表情)
注意:
- 测试点1,2:注意下标越界的问题,输入的数字从1开始(表情数字输入包含0和复数负数)
- 手和眼之间有 '(' ')'
- 输出的转义字符,"Are you kidding me? @\\/@"
1 #include<iostream> 2 #include<vector> 3 4 using namespace std; 5 6 int main() { 7 /*计数*/ 8 int n = 0, f[5]; 9 char c; 10 /*单个表情*/ 11 char ss[5]; 12 /*手眼口所有表情*/ 13 vector<vector<string>> body; 14 for (int i = 0; i < 3; i++) { 15 vector<string> s; 16 while ((c = getchar()) != '\n') { 17 if (c == '[') { 18 scanf("%[^]]", ss); //利用scanf的格式化输入,识别"[]" 19 s.push_back(ss); 20 } 21 } 22 body.push_back(s); 23 } 24 cin >> n; 25 for (int i = 0; i < n; i++) { 26 for (int j = 0; j < 5; j++) cin >> f[j]; 27 if ((f[0] > 0 && f[0] <= body[0].size()) 28 && (f[1] > 0 && f[1] <= body[1].size()) 29 && (f[2] > 0 && f[2] <= body[2].size()) 30 && (f[3] > 0 && f[3] <= body[1].size()) 31 && (f[4] > 0 && f[4] <= body[0].size())) { //防止下标越界 32 cout << body[0][f[0] - 1] << '(' << body[1][f[1] - 1] 33 << body[2][f[2] - 1] << body[1][f[3] - 1] << ')' 34 << body[0][f[4] - 1] << endl; 35 } 36 else { 37 cout << "Are you kidding me? @\\/@" << endl; //注意'\'转义字符,'\\'才可输出'\' 38 } 39 40 } 41 }
内容总结
以上是互联网集市为您收集整理的PTA 乙级 1052 卖个萌 (20分) C++全部内容,希望文章能够帮你解决PTA 乙级 1052 卖个萌 (20分) C++所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。