排课表问题实现下一个方案


#include<stdio.h>
#include <stdlib.h>
#define m 5
#define n 7
void menu()//菜单显示
{
    printf("***************课表系统菜单****************\n");
    printf("***************1.排课******************\n");
   
    printf("***************0.退出**********************\n");
}
void course(){    int c=1;
    srand(time(NULL));
        int a2[5][7]={0};
        int a1[5][7]={0};
        int i,j,x1,y1;
do{
    
    printf("%d班:\n",c);
     printf("    周一   周二   周三   周四   周五   周六   周天\n");
    x1=rand()%m;
    printf("%d\n",x1);
    y1=rand()%n;
    printf("%d\n",y1);
    a1[x1][y1]=1;
    a2[x1][y1]=1;
    for(i=0;i<5;i++)
    {
        for(j=0;j<7 ;j++)
        printf("%7d",a1[i][j]);
        printf("\n");
    }
    c++;
}while(c<=6);
printf("上机课表:\n"); 
for(i=0;i<5;i++)
    {
        for(j=0;j<7 ;j++)
        printf("%7d",a2[i][j]);
        printf("\n");
    }
    int q;
    printf("*************1.寻找下一个方案**************\n");
    printf("*************2.恢复到初始状态**************\n");
    printf("请选择\n");
    scanf("%d",&q);
    switch(q)
    {
    case 2:
    {
        exit(0);break;
    }
    case 1:
    {
    printf("下一个方案\n");    
    
    }

}

//课程表输出函数

int main()
{    menu();
  int k;
  scanf("%d",&k);
  switch(k)
  {
     case 0: 
     exit(0);break;
     case 1:
    {    course();
     break;
    }
  }
  return 0;
}

运行结果如下
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/734272806286159.jpg "#left"

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7600839
  • 以下回答来自chatgpt:

    抱歉,根据您提供的信息,我无法了解您所指的具体排课表问题是什么。如果您能提供更具体的问题描述和相关信息,我将非常乐意帮助您寻找解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

for (i = 0; i < 5; i++) {
    for (j = 0; j < 7; j++) {
        a1[i][j] = 1;
        a2[i][j] = 1;
    }
}

这样所有的元素都会被赋值为 1,程序运行后就可以看到完整的课表。

具体想实现什么排课功能?