在C语言中制作排班表可以通过多种方法实现,下面是一个简单的示例代码,用于创建一个基本的排班表系统:
```c
include include define MAX_EMPLOYEES 10 define MAX_DAYS 7 int main() { char employees[MAX_EMPLOYEES] = { "张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "郭十二" }; int schedule[MAX_DAYS][MAX_EMPLOYEES]; int i, j; // 初始化排班表,-1表示该天该员工不上班,其他数字表示员工编号 for (i = 0; i < MAX_DAYS; i++) { for (j = 0; j < MAX_EMPLOYEES; j++) { schedule[i][j] = -1; } } // 填充排班表 for (i = 0; i < MAX_DAYS; i++) { printf("请输入星期%d的排班情况(输入-1表示休息):\n", i + 1); for (j = 0; j < MAX_EMPLOYEES; j++) { printf("请输入%s的排班情况:", employees[j]); scanf("%d", &schedule[i][j]); } } // 打印排班表 printf("排班表如下:\n"); for (i = 0; i < MAX_DAYS; i++) { printf("星期%d:\n", i + 1); for (j = 0; j < MAX_EMPLOYEES; j++) { if (schedule[i][j] == -1) { printf("休息\n"); } else { printf("%s\n", employees[schedule[i][j]]); } } printf("\n"); } return 0; } ``` 这个程序首先定义了一个二维数组`schedule`来存储排班信息,然后通过两个嵌套的for循环来初始化排班表。用户可以输入每一天每个员工的排班情况,程序会打印出最终的排班表。 如果你需要更复杂的排班系统,比如考虑员工的休息日、特殊需求或者更复杂的排班规则,你可能需要使用更高级的数据结构和算法,例如递归算法来尝试所有可能的排班组合,或者使用图论中的算法来解决排班问题。这些高级方法超出了简单示例的范围,但可以通过类似的方法实现。