笔试题:C++打印队列
2018-09-18 06:25:21来源:博客园 阅读 ()
题目:打印队列
题目介绍:现在用打印机打印队列,已知打印任务有9个优先级(1-9),现在给出一系列任务,求输出打印顺序(任务下标,从0开始)。
例:
输入:9,3,5,4,7,1
输出:0,4,2,3,1,5
分析:第一点是不知道输入任务的个数,这个要用 reserve 指令来解决;第二点是不要忽略逗号,不要天真的忽略掉。要用到栈的相关知识,但又不能完全用栈来储存数据,因为要输出的是下标,这个一般要转换成数组来解决。
代码:
1 #include <iostream> 2 #include <string> 3 #include <conio.h> 4 #include <vector> 5 using namespace std; 6 int max(vector <int> p, int n); 7 int main() 8 { 9 int n = 0; 10 int a; 11 char c; 12 vector <int> p; 13 p.reserve(100); 14 p.push_back(0); 15 int i = 0; 16 while (cin >> a) 17 { 18 p[n++] = a; 19 p.push_back(n); 20 if ((c = getchar()) == '\n') 21 { 22 break; 23 } 24 } 25 for (i = 0; i < n - 1; i++) 26 { 27 cout << max(p,n) << ",";//输出最大值的下标 28 p[max(p, n)] = 0;//输出一个值就初始化一个值 29 } 30 cout << max(p, n); 31 } 32 int max(vector <int> p, int n) 33 { 34 int a = 0, b = 0; 35 for (int i = 0; i < n; i++) 36 { 37 if (p[i] > a) 38 { 39 a = p[i]; 40 b = i; 41 } 42 } 43 return b; 44 }
结果:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash