c语言i 12的意思啊,C语言I作业12

一、我学到的内容(整理本课程所学,[用思维导图的方式]

二、我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获

|作业名|作业链接|收获|

|------|-------|----|

|C语言I博客作业03|https://www.cnblogs.com/7k7k4399/p/11657379.html|

|C语言I博客作业04|https://www.cnblogs.com/7k7k4399/p/11698763.html|

|C语言I博客作业05|https://www.cnblogs.com/7k7k4399/p/11743094.html|

|C语言I博客作业06|https://www.cnblogs.com/7k7k4399/p/11783013.html|

|C语言I博客作业07|https://www.cnblogs.com/7k7k4399/p/11819908.html|

|C语言I博客作业08|https://www.cnblogs.com/7k7k4399/p/11869829.html|

|C语言I博客作业09|https://www.cnblogs.com/7k7k4399/p/11869829.html|

|C语言I博客作业10|https://www.cnblogs.com/7k7k4399/p/11960234.html|

|C语言I博客作业11|https://www.cnblogs.com/7k7k4399/p/11997087.html|

|C语言I博客作业12|https://www.cnblogs.com/7k7k4399/p/12037228.html|

三、自我总结(回顾第一次博客作业中提到的对自己的期待,有没有没做到的?反思本学期没做好的地方,也请提出你在本学期做得好的地方)

四、量化的自我评价(指标包括:代码行数、博客字数、总计学习小时数、成绩曲线,指标请用图形的方式给出,并请根据指标分析自己的学习情况)

学习量化指标图参考:

成绩曲线图参考:

五、我努力的方向(关于接下来的寒假和新的学期,你的计划是什么?你对自己的期待是什么?)

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
流水作业调度是一种常见的作业调度算法,用于优化流水线中的作业执行顺序,以提高整个流水线的执行效率。在C语言中实现流水作业调度算法可以参考以下代码: ```c #include <stdio.h> #include <stdlib.h> #define MAX_PROC 10 typedef struct process { int id; // 进程编号 int time; // 运行时间 int prev; // 前继任务 } Process; void print_schedule(Process proc[], int n, int schedule[]) { printf("作业调度顺序:\n"); for (int i = 0; i < n; i++) { printf("%d ", proc[schedule[i]].id); } printf("\n"); } int* schedule(Process proc[], int n) { int* schedule = (int*) malloc(n * sizeof(int)); int head = 0, tail = 0; // 队列头尾指针 int* in_degrees = (int*) calloc(n, sizeof(int)); // 入度数组 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i != j && proc[i].prev == proc[j].id) { in_degrees[i]++; } } if (in_degrees[i] == 0) { schedule[tail++] = i; } } while (head < tail) { int cur = schedule[head++]; for (int i = 0; i < n; i++) { if (proc[i].prev == proc[cur].id) { in_degrees[i]--; if (in_degrees[i] == 0) { schedule[tail++] = i; } } } } free(in_degrees); return schedule; } int main() { Process proc[MAX_PROC] = { {0, 5, -1}, {1, 3, 0}, {2, 6, 1}, {3, 4, 0}, {4, 2, 3}, {5, 2, 2}, {6, 4, 5}, {7, 5, 4}, {8, 3, 6}, {9, 2, 7}, }; int n = 10; int* schedule = schedule(proc, n); print_schedule(proc, n, schedule); free(schedule); return 0; } ``` 在这个示例代码中,我们定义了一个 `Process` 结构体来表示一个进程,包括进程编号、运行时间和前继任务。我们使用了一个队列来存储已经安排好了调度顺序的进程,并维护一个入度数组来记录每个进程的前继任务数。在调度算法中,我们首先将所有入度为0的进程放入队列中,然后逐个取出队列中的进程,将其后继任务的入度减1,如果入度变为0,则将其加入队列中。最终,队列中的进程就是按照流水作业调度算法安排好的调度顺序。 这个示例代码中的调度顺序是按照进程编号从小到大排列的,如果需要按照运行时间或其他条件排序,可以在调度算法中进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值