这个节点问题目没事吧?碰到操作系统题目不会做求帮助
資深大佬 : freehehe 11
下面的程序是作业调度程序的片段。请仔细阅读,找出三条错误的语句并更正之。
typedef struct jcb
{ char na[4];
int len,ta,rt,wt;
struct jcb *next;
} jcb;
jcb *head;
int ta;
long mem;
shedl()
{
1、 float xk,k;
2、 jcb *p,*q,*s,*t;
3、 do
4、 {p=head;
5、 s=null;
6、 q=null;
7、 k=0;
8、 while (p!=null){
9、 { if(p->len<=mem)
10、 xk=(float)(p->wt)/p->rt;
11、 if(q==null||xk>k)
12、 { k=xk;q=p;t=s;}
13、 }
14、 s=p;
15、 p=p->next;
16、 }
17、 if (q!=null)
18、 { if(t==null)
19、 head=head->next;
20、 else
21、 t->next=q->next;
22、 mem=q->len;
23、 ta=ta-q->ta;
24、 printf(“选中作业:%sn”,q->na);
25、 }
26、 } while(ta>0);
typedef struct jcb
{ char na[4];
int len,ta,rt,wt;
struct jcb *next;
} jcb;
jcb *head;
int ta;
long mem;
shedl()
{
1、 float xk,k;
2、 jcb *p,*q,*s,*t;
3、 do
4、 {p=head;
5、 s=null;
6、 q=null;
7、 k=0;
8、 while (p!=null){
9、 { if(p->len<=mem)
10、 xk=(float)(p->wt)/p->rt;
11、 if(q==null||xk>k)
12、 { k=xk;q=p;t=s;}
13、 }
14、 s=p;
15、 p=p->next;
16、 }
17、 if (q!=null)
18、 { if(t==null)
19、 head=head->next;
20、 else
21、 t->next=q->next;
22、 mem=q->len;
23、 ta=ta-q->ta;
24、 printf(“选中作业:%sn”,q->na);
25、 }
26、 } while(ta>0);
程序说明:jcb[]-作业调度表(结构类型);na[]-作业名; len-内存长度; rt-运行时间; wt-等待时间;mem-内存长度; ta-设备台数。
大佬有話說 (5)