摘要:本文主要向大家介绍了 C/C++知识点之笔试题:C++打印队列,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了 C/C++知识点之笔试题:C++打印队列,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
题目:打印队列
题目介绍:现在用打印机打印队列,已知打印任务有9个优先级(1-9),现在给出一系列任务,求输出打印顺序(任务下标,从0开始)。
例:
输入:9,3,5,4,7,1
输出:0,4,2,3,1,5
分析:第一点是不知道输入任务的个数,这个要用 reserve 指令来解决;第二点是不要忽略逗号,不要天真的忽略掉。要用到栈的相关知识,但又不能完全用栈来储存数据,因为要输出的是下标,这个一般要转换成数组来解决。
代码:
1 #include
2 #include
3 #include
4 #include
5 using namespace std;
6 int max(vector
7 int main()
8 {
9 int n = 0;
10 int a;
11 char c;
12 vector
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
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 }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号