大神能帮我看看这个程序吗

#include
#include
#define N 3 //5个作业
struct Jcb{
char JobName[10]; //作业名
int ArriveTime; // 到达时间
int RunTime; //运行时间
int StartTime; //开始时间
int EndTime; //结束时间
int TurnTime; //周转时间
float DQuanTurnTime;//带权周转时间

};

Jcb job[N];
Jcb jjjob[N];
Jcb* jjob[N];

void CreatJcb(){
printf("输 入作业信息 作业名 到达时间 运行时间\n");
for(int i=0;i<N;i++){
printf("输入作业信息 作业名 \n");
scanf("%s",job[i].JobName);
printf(" 输入到达时间\n");
scanf("%d",&job[i].ArriveTime);
printf(" 输入运行时间\n");
scanf("%d",&job[i].RunTime);
job[i].StartTime=0;
job[i].EndTime=0;
job[i].TurnTime=0;
job[i].DQuanTurnTime=0.0;
}
}

void paixujob(){ //安开始时间将5个jcb排序
for(int k=0;k<N;k++){
jjob[k]=&job[k];
}

Jcb *t;

for(int i=0;i for(int j=i+1;j if(jjob[i]->ArriveTimeArriveTime)
{
t=*(jjob+i);
(jjob+i)=(jjob+j);
*(jjob+j)=t;
}

}
}

}
void jieshu(){ //输出结果

 for(int k=0;k<N;k++){
jjjob[k]=*jjob[k];
}
for(int i=0;i<N;i++){
     jjjob[i].EndTime=jjjob[i].StartTime+jjjob[i].RunTime;
     jjjob[i].TurnTime=jjjob[i].EndTime-jjjob[i].ArriveTime;
     jjjob[i].DQuanTurnTime=jjjob[i].TurnTime/(float)jjjob[i].RunTime;
     if(jjjob[i+1].ArriveTime>jjjob[i].EndTime)
        jjjob[i+1].StartTime=jjjob[i+1].ArriveTime;
     else 
        jjjob[i+1].StartTime=jjjob[i].EndTime;
}
printf("输出作业信息 作业名 到达时间 运行时间 开始时间 结束时间 周转时间 带权周转时间\n");
for(int j=0;j<N;j++){

     printf("作业信息%d:\n",j);
     printf("%s\n",jjjob[i].JobName);
     printf("%d   %d    %d\n",jjjob[i].ArriveTime,jjjob[i].RunTime,jjjob[i].StartTime);
     printf("%d   %d    %d\n",jjjob[i].EndTime,jjjob[i].TurnTime,jjjob[i].DQuanTurnTime);
}
} 

void main(){
CreatJcb();
paixujob();
jieshu();

}

格式混乱,没有说明要问什么?

for(int j=0;j<N;j++){

printf("作业信息%d:\n",j);
这里好好地怎么又变成j了。变成j也就变了,后面怎么又变成i了