#include <stdio.h> #include <string.h> typedef struct { char name[10]; int arrival_time; int burst_time; } Process; void srtf(Process processes[], int n) { int remaining_time[n]; int complete = 0; int t = 0; int shortest = 0; int finish_time; for (int i = 0; i < n; i++) { remaining_time[i] = processes[i].burst_time; } while (complete < n) { int min_burst = 9999; for (int i = 0; i < n; i++) { if (processes[i].arrival_time <= t && remaining_time[i] < min_burst && remaining_time[i] > 0) { min_burst = remaining_time[i]; shortest = i; } } remaining_time[shortest]--; t++; if (remaining_time[shortest] == 0) { complete++; finish_time = t; printf("%s ", processes[shortest].name); } } } int main() { Process processes[4]; for (int i = 0; i < 4; i++) { scanf("%s %d %d", processes[i].name, &processes[i].arrival_time, &processes[i].burst_time); } srtf(processes, 4); return 0; } [2024-11-14 15:45:51 | AI写代码神器 | 780点数解答]