移动仲裁邮箱

获取审批邮箱get-mailbox -Database "Mailbox Database 0106222248" -Arbitration
移动审批邮箱get-mailbox -Database 'Mailbox Database 0106222248' -Arbitration | New-MoveRequest -TargetDat
ase 'test'
任务描述 本关任务:补全代码,将所有输入端口的队列全部排空,并输出仲裁次数。 相关背景知识 连续仲裁的实现 通过前面三关的练习,相信大家已经基本掌握了在路由器中,进行一次完整的端口仲裁的详细经过。在真实的路由器中,一般每个时钟周期(单位时间)完成一次仲裁,只要输入队列还有请求,路由器就会不断地仲裁,实现输入报文流水化的向前传输。 本关需要大家补全代码,实现连续仲裁过程。 编程要求 根据提示,在右侧编辑器补充代码,实现连续仲裁,排空所有输入队列中的报文,并输出需要的时间节拍数量(仲裁次数)。 测试说明 测试输入:2 2 3 1 0 3 3 1 2 3 1 3 0 0 1 2 预期输出: 8 #include<iostream> using namespace std; #define PORT 4 //目的端口个数 #define LEN 4 //队列长度 int main() { //声明PORT个输入队列,长度均为LEN int In_queue[PORT][LEN]; //为PORT个队列生成LEN个随机的请求数据报文 for(int i=0;i<PORT;i++) { for(int j=0;j<LEN;j++) { cin>>In_queue[i][j]; } } //补全代码,排空所有的输入端口队列,并输出仲裁次数 /********** Begin *********/ // 实现端口仲裁逻辑 bool out_able[PORT]; for (int i =0;i<PORT;i++) { out_able[i] = true; } for(int i=0;i<PORT;i++) //仲裁PORT个出口 { for(int j=0;j<PORT;j++) //对PORT个入口进行逐一判断 { if(In_queue[j][0] == i && out_able[i] == true) //当前端口有请求,先满足 { In_queue[j][0] = -1; out_able[i] = false; } } } //实现队列元素移动功能 for(int i=0;i<PORT;i++) { if(In_queue[i][0] == -1) { for (int j=0;j<LEN-1;j++) { In_queue[i][j] = In_queue[i][j+1]; } In_queue[i][LEN-1] = -1; } } /********** End **********/ return 0; }
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值