登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情~
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
1
Star
0
Fork
0
秣羽konjac
/
网络2011 博客代码
代码
Issues
6
Pull Requests
0
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
7-6 银行业务队列简单模拟 (25 分)
待办的
#I3G2GN
秣羽konjac
拥有者
创建于
2021-04-05 19:39
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。 输入格式: 输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。 输出格式: 按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。 ``` #include<string.h> #include<stdio.h> #include<stdlib.h> #define ERROR -1 typedef int ElementType; typedef int Position; typedef struct SNode *PtrToSNode; struct SNode { ElementType *Data; /* 存储元素的数组 */ Position Top; /* 队首指针 */ Position Tail; /* 尾队指针 */ int MaxSize; /* 堆栈最大容量 */ }; typedef PtrToSNode Stack; Stack CreateStack(int MaxSize); void Push(Stack S,int num); int Pop(Stack S); int main() { int N = 0, i=0, num[1001], temp, flag=0; int CD_B=0; scanf("%d", &N); Stack S1 = CreateStack(N);//A Stack S2 = CreateStack(N);//B for (i = 0; i < N; i++) { scanf("%d", &num[i]); } i = 0; while (i < N)//入队列 { if (num[i] % 2 == 0)//偶数B { Push(S2, num[i]); } else//奇数A { Push(S1, num[i]); } i++; } S1->Tail--; S2->Tail--; while (i>0) { if (S1->Top != S1->Tail+1)//A不空栈 { temp = Pop(S1); if (flag == 0) { printf("%d", temp); flag = 1; } else { printf(" %d", temp); } i--; } if (S1->Top != S1->Tail+1)//A不空栈 { temp = Pop(S1);//2个A printf(" %d", temp); i--; } if (S2->Top != S2->Tail+1)//B不空栈 { temp = Pop(S2);//1个B if (flag == 0) { printf("%d", temp); flag = 1; } else { printf(" %d", temp); } i--; } } } Stack CreateStack(int MaxSize) { Stack S = (Stack)malloc(sizeof(struct SNode)); S->Data = (ElementType*)malloc(MaxSize * sizeof(ElementType)); S->Top = 0; S->Tail = 0; S->MaxSize = MaxSize; return S; } void Push(Stack S, int num) { S->Data[S->Tail] = num; S->Tail++; } int Pop(Stack S) { int temp; temp = S->Data[S->Top]; S->Top++; return temp; } ```
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。 输入格式: 输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。 输出格式: 按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。 ``` #include<string.h> #include<stdio.h> #include<stdlib.h> #define ERROR -1 typedef int ElementType; typedef int Position; typedef struct SNode *PtrToSNode; struct SNode { ElementType *Data; /* 存储元素的数组 */ Position Top; /* 队首指针 */ Position Tail; /* 尾队指针 */ int MaxSize; /* 堆栈最大容量 */ }; typedef PtrToSNode Stack; Stack CreateStack(int MaxSize); void Push(Stack S,int num); int Pop(Stack S); int main() { int N = 0, i=0, num[1001], temp, flag=0; int CD_B=0; scanf("%d", &N); Stack S1 = CreateStack(N);//A Stack S2 = CreateStack(N);//B for (i = 0; i < N; i++) { scanf("%d", &num[i]); } i = 0; while (i < N)//入队列 { if (num[i] % 2 == 0)//偶数B { Push(S2, num[i]); } else//奇数A { Push(S1, num[i]); } i++; } S1->Tail--; S2->Tail--; while (i>0) { if (S1->Top != S1->Tail+1)//A不空栈 { temp = Pop(S1); if (flag == 0) { printf("%d", temp); flag = 1; } else { printf(" %d", temp); } i--; } if (S1->Top != S1->Tail+1)//A不空栈 { temp = Pop(S1);//2个A printf(" %d", temp); i--; } if (S2->Top != S2->Tail+1)//B不空栈 { temp = Pop(S2);//1个B if (flag == 0) { printf("%d", temp); flag = 1; } else { printf(" %d", temp); } i--; } } } Stack CreateStack(int MaxSize) { Stack S = (Stack)malloc(sizeof(struct SNode)); S->Data = (ElementType*)malloc(MaxSize * sizeof(ElementType)); S->Top = 0; S->Tail = 0; S->MaxSize = MaxSize; return S; } void Push(Stack S, int num) { S->Data[S->Tail] = num; S->Tail++; } int Pop(Stack S) { int temp; temp = S->Data[S->Top]; S->Top++; return temp; } ```
评论 (
0
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
C++
1
https://gitee.com/konjac_wjh/web-2011---blog-code.git
git@gitee.com:konjac_wjh/web-2011---blog-code.git
konjac_wjh
web-2011---blog-code
网络2011 博客代码
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册