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

C语言实现4进程最短剩余时间优先(SRTF)调度算法及顺序输出

```c #include <stdio.h> #include <string.h> // 定义进程结构体 typedef struct { char name[10]; int arrivalTime; int burstTime; int remainingTime; } Process; // 比较函数,用于剩余时间排序 int compare(const void *a, const void *b) { Process *p1 = (Process *)a; Process *p2 = (Process *)b; if (p1->remainingTime == p2->remainingTime) { return p1->arrivalTime - p2->arrivalTime; } else { return p1->remainingTime - p2->remainingTime; } } int main() { Process processes[4]; for (int i = 0; i < 4; i++) { scanf("%s %d %d", processes[i].name, &processes[i].arrivalTime, &processes[i].burstTime); processes[i].remainingTime = processes[i].burstTime; } int currentTime = 0; int completedProcesses = 0; printf("执行顺序: "); while (completedProcesses < 4) { qsort(processes, 4, sizeof(Process), compare); int selected = -1; for (int i = 0; i < 4; i++) { if (processes[i].arrivalTime <= currentTime && processes[i].remainingTime > 0) { selected = i; break; } } if (selected == -1) { currentTime++; continue; } processes[selected].remainingTime--; if (processes[selected].remainingTime == 0) { completedProcesses++; printf("%s ", processes[selected].name); } currentTime++; } printf("\n"); return 0; } ``` ######[AI写代码神器 | 456点数解答 | 2024-11-14 16:17:26]

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