當前位置:編程學習大全網 - 編程語言 - C程序求解

C程序求解

學習編程語言,要學會自己找錯誤。我幫妳修改了壹下,有2個地方有問題。

至於pcb *createprocess(pcb *head);是什麽,其實他就是壹個子程序。

程序名叫createprocess

pcb *表示它的返回值是壹個pcb *類型,也就是結構體指針。

#include<stdio.h>

#include<malloc.h>

#define?max?100

#define?pfree?0

#define?running?1

#define?aready?2

#define?blocking?3

typedef?struct?node

{

char?name;

int?status;

int?precendence;

int?ax,bx,cx,dx;

int?pc;

int?psw;

struct?node?*next;

}pcb;

pcb?*createprocess(pcb?*head)

{

pcb?*p,*q;

int?a,b,c,d,m,n;

char?ID;

int?s;

q=NULL;

printf("\ninput?the?first?seven?status?pcb:");

scanf("n%c",&ID);

scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&m,&n);

while(ID!='*')

{

p=(pcb*)malloc(sizeof(pcb));

p->name=ID;

p->ax=a;

p->bx=b;

p->cx=c;

p->dx=d;

p->pc=m;

p->psw=n;

p->precendence=pre;//這裏的pre沒定義,不知道是什麽。我猜想是pfree

p->status=aready;

if(head==NULL)

head=p;

else

q->next=p;

q=p;

printf("\ninput?the?next?pcb:");

scanf("n%c",&ID);

scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&m,&n);//這裏缺少壹個"

}

if(q!=NULL)

q->next=NULL;

q=head;

while(q)

{

printf("\n?peocess?name.status.ax.bx.cx.dx.pc.psw.\n");

printf("%10c%5d%8d%5d%5d%5d%5d%5d%5d",q->name,q->status,q->precendence,q->ax,q->bx,q->cx,q->dx,q->pc,q->psw);

q=q->next;

}

return?head;/*createprocess?end*/

}

void?processfifo(pcb?*head)

{

pcb?*p;

p=head;

printf("\n?the?process?use?fifo?method.\n");

printf("running?the?first?process:\n");

while(p!=NULL)

{

p->status=running;

printf("\nprocess?name?status.ax.bx.cx.dx.pc.psw.");

printf("\n%10c%5d%8d%5d%5d%5d%5d%5d",p->name,p->status,p->bx,p->cx,p->dx,p->pc,p->psw);/*check?process?running?status?*/

p->status=0;

p=p->next;

}

printf("\ncheck?weatherfer?the?process?complete:");

p=head;

while(p)

{

printf("\n%3c%3d",p->name,p->status);

p=p->next;

}

printf("\ngame?is?over!\n");

}

int?main()

{

pcb?*head;

head=NULL;

head=createprocess(head);

processfifo(head);

return?0;

}

  • 上一篇:C語言鼠標操作
  • 下一篇:女生專科讀什麽專業好
  • copyright 2024編程學習大全網