大家帮忙看下 输出有问题
											
程序代码:/*
*单链表插入排序
*/
#include <stdio.h>
#include <stdlib.h>
 struct PCB
{
    char name[10];
    int  rtime;
    int  priority;
    char state;
    struct PCB *next;
};
/*
*初始化PCB
*/
struct PCB *initPCB()
{
  struct PCB *head;
 
  head=(struct PCB *)malloc(sizeof(struct PCB));
  if(NULL==head)
  {
      exit(-1);
  }
  head->next=NULL;
  return head;
}
struct PCB *inputValue(struct PCB *head)
{
  struct PCB *temp;
  temp=head;
  //for(int i=0;i<5;i++)
  //{
    printf("please input the information of process\n");
    printf("name:");
    scanf("%s",temp->name);
    printf("run time:");
    scanf("%d",&temp->rtime);
    printf("priority:");
    scanf("%d",&temp->priority);
    temp->state='R';
    printf("\n");
 // }
  return temp;
}
/*
*找到优先级最高的进程
*/
void  MaxPriorityProcess(struct PCB * head,struct PCB * pCurrent)
{
  struct PCB *temp;
  struct PCB *p;//p为新节点分配内存,temp用来遍历链表
  temp=head->next;
  p=(struct PCB*)malloc(sizeof(struct PCB));
  p->priority=pCurrent->priority;
  while(temp)
  {
      if(pCurrent->priority>temp->priority) //如果大于某个已经存在的节点
      {                                         //则把新节点插入到该节点前面
          p->next=temp->next;
          temp->next=p;
      }
      temp=temp->next;
  }
  p->next=NULL;//如果小于所有已经存在的节点,则执行下面的代码
  head->next=p;//把新节点插入到链表的最后
}
/*
*打印PCB
*/
void printPCB(struct PCB * head)
{
    struct PCB *temp;
    temp=head->next;
    while(temp!=NULL)
    {
        printf("\n process name: %s\n run time: %d\n priority num: %d\n process state:%c\n",
            temp->name,temp->rtime,temp->priority,temp->state);
        temp=temp->next;
    }
    printf("\n");
}
int main()
{
    struct PCB *head=NULL;
    struct PCB *temp=NULL;
    //head=initPCB();
     /*head=(struct PCB *)malloc(sizeof(struct PCB));
     if(NULL==head)
     {
         exit(-1);
     }
     head->next=NULL;
    for(int i=0;i<5;i++)         
    {
      temp=initPCB();  
      //temp->next = NULL;
      MaxPriorityProcess(head,temp);          
    }*/
    head=initPCB();
    for(int i=0;i<5;i++)
    {
      temp=inputValue(head);
      MaxPriorityProcess(head,temp);    
    }
    printPCB(head);             
   
    return 0;
}
										
					
	


											
	    

	