Прошу прощения, начинающий код Я пытаюсь составить детское расписание, используя оба родительских расписания. Каждый номер в расписании означает что-то. 0 означает, что это свободный час, 23 означает, что субъект 3 и комната 2. То есть, одно место описывает предмет, десятки - номер комнаты. Таким образом, тема 1,2,3,4 должна появиться только 3 раза в расписании. 5,6 должны появиться только 2 раза. Это необходимо как в P1, так и в P2, и то же самое должно быть воспроизведено у ребенка. Номера не имеют значения на данный момент.
77 и 88 - лабораторные часы, которые происходят раз в неделю. Это также может происходить только в дневное время, как показано на p1 и p2. Мой код работает для различных предметов, но, похоже, не работает для лабораторий, поскольку они должны приходить последовательно.
Кроме того, p1 имеет более высокий приоритет при воспроизведении, то есть 60% и p2 40%. Если вы поможете мне с редактированием, которое также решит лабораторную проблему, это очень поможет.
Я пытался сначала выбрать только лаборатории, а затем делать это, но это не сработало. Я не знаю почему.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
int p1[5][9]={0,26,24,0,31,0,13,0,0,0,16,23,0,0,0,77,77,77,0,0,11,0,0,0,22,0,33,34,32,15,24,0,0,88,88,88,0,0,15,21,0,0,0,0,22};
int p2[5][9]={24,12,21,15,34,0,0,0,26,0,11,0,0,35,0,88,88,88,0,21,33,0,0,0,77,77,77,0,0,12,0,23,0,0,24,0,0,0,0,33,12,0,0,0,26};
int d,h;
int random_number_creator(int upper, int lower) //used to generate random numbers between lower and upper
{
int n;
n = rand() % (upper-lower)+ lower;
return n;
}
int findsubject(int a)
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(p2[i][j]%10==a)
{
d=i;
h=j;
return 0;
}
}
}
}
main()
{
int child[5][9],a,r,f,k;
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
child[i][j]=0;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
{
if(p1[i][j]!=0)
{
a=p1[i][j]%10;
f=findsubject(a);
r=random_number_creator(101,1);
if(r<60&&child[i][j]==0)
{
if(a==7||a==8)
{
for()
}
else
{
child[i][j]=p1[i][j];
p1[i][j]=0;
p2[d][h]=0;
}
}
else
{
child[i][j]=p2[d][h];
p1[i][j]=0;
p2[d][h]=0;
}
}
}
}
for(i=0;i<5;i++)
{
if(i==0)
printf("\nMon");
if(i==1)
printf("\nTue");
if(i==2)
printf("\nWed");
if(i==3)
printf("\nThu");
if(i==4)
printf("\nFri");
for(j=0;j<9;j++)
printf("%3d\t",child[i][j]);
}
}
Я хочу, чтобы у ребенка было правильное расписание, с предметами, встречающимися только столько, сколько они должны, и с лабораторными занятиями, происходящими днем.