酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

用 C 语言实现短作业优先(SJF)调度算法计算 4 个进程周转时间

```c #include <stdio.h> typedef struct { char name[10]; int arrivalTime; int runTime; } Process; void sjfScheduling(Process processes[], int n) { int completionTimes[n]; int turnaroundTimes[n]; int currentTime = 0; int minRunTime, selectedProcess; for (int i = 0; i < n; i++) { minRunTime = 9999; selectedProcess = -1; for (int j = 0; j < n; j++) { if (processes[j].arrivalTime <= currentTime && processes[j].runTime < minRunTime && processes[j].runTime > 0) { minRunTime = processes[j].runTime; selectedProcess = j; } } if (selectedProcess == -1) { for (int j = 0; j < n; j++) { if (processes[j].runTime > 0 && processes[j].arrivalTime < minRunTime) { minRunTime = processes[j].arrivalTime; selectedProcess = j; } } } if (selectedProcess!= -1) { currentTime += processes[selectedProcess].runTime; completionTimes[selectedProcess] = currentTime; processes[selectedProcess].runTime = 0; } } for (int i = 0; i < n; i++) { turnaroundTimes[i] = completionTimes[i] - processes[i].arrivalTime; printf("%d ", turnaroundTimes[i]); } } int main() { Process processes[4]; for (int i = 0; i < 4; i++) { scanf("%s %d %d", processes[i].name, &processes[i].arrivalTime, &processes[i].runTime); } sjfScheduling(processes, 4); return 0; } ``` ######[AI写代码神器 | 473点数解答 | 2024-11-14 16:15:00]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]