📄 简单轮转法.cpp
字号:
#include<stdio.h>
/*定义一个pcb的结构体*/
struct pcb
{ char name; /*进程名*/
int time; /*进程执行时间*/
};
void main()
{ int n,i,j,flag=1;
struct pcb a[100]; /*最多可以有100个进程*/
printf("输入进程个数:");
scanf("%d",&n);
getchar();/*接收回车*/
for(i=0;i<n;i++)
{ printf("输入进程的名字:\n");
scanf("%c",&a[i].name); /*以字符接收进程名*/
getchar();/*接收回车*/
printf("输入占用的时间片:"); /*输入进程占用的时间片*/
scanf("%d",&a[i].time);
getchar();/*接收回车*/
}
i=0;
while(flag && n>0) /*若进程数为空,结束程序*/
{ if(a[i].time!=0) /*就绪队列是否为空*/
{ printf("%c",a[i].name); /*进程执行一次,打印出该进程*/
a[i].time--; /*使该进程占用的时间片减1*/
}
for(j=0;j<n;j++)
if(a[j].time) /*若进程所占用的时间片不为0,仍执行下一进程*/
{ flag=1;
break;
}
else /*若进程所占用的时间片为0,说明已经完成,跳过执行下一进程*/
flag=0;
i=(++i)%n; /*继续执行下一个进程,i+1*/
}
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -