所以,我试图从FCFS调度器的Samfoundry修改这段代码。我删除了与周转时间有关的东西,因为我并不真正需要它,并修改了它,以便它可以处理数组内已经存在的元素,而不是用户输入。我认为逻辑是正确的,但格式不是,我真的不知道为什么,即使它几乎与源代码相同。
int main()
{
int pid[5] = {1, 2, 3, 4, 5};
int bt[5] = {5, 3, 1, 2, 3};
int n = 5;
int i, wt[n];
wt[0]=0;
//for calculating waiting time of each process
for(i=1; i<n; i++)
{
wt[i]= bt[i-1]+ wt[i-1];
}
printf("Process ID Burst Time Waiting Timen");
float twt=0.0;
for(i=0; i<n; i++)
{
printf("%dtt", pid[i]);
printf("%dtt", bt[i]);
printf("%dtt", wt[i]);
//for calculating total waiting time
twt += wt[i];
}
float awt;
//for calculating average waiting time
awt = twt/n;
printf("nAvg. waiting time= %fn",awt);
}
Expected output:
ProcessID BurstTime WaitingTime
1 5 0
2 3 5
3 1 8
4 2 9
5 1 11
Actual output:
ProcessID BurstTime WaitingTime
1 5 0 2 3 5 3 1 8 4 2 9 5
3 11
在代码中一切都很好,你只需要在for循环中添加一些额外的制表符和新的行字符
printf("%dtttt", pid[i]); //add two more tab spaces
printf("%dtttt", bt[i]); //same as here add two tab spaces
printf("%dttn", wt[i]); // add a n i.e new line