I want to do the distribution of high school classes on teachers of a subject in a random way, my only condition is not to exceed 21 hours of work for each teacher. For this I have declared a structure TAB which contains each class (filliere) as well as its number of hours. another structure TAB1 contains the classes as well as an integer 0 or 1 which allows to know if I have assigned this class to a teacher or not yet.
my program compiles and runs but it doesn't print anything.
I want to generate randomly different numbers from 0 to 18. for example if the function rand() gives the number 15, I want to be sure sure that the next number shouldnt be 15,and so on, instead of TAB1 structure.
#include <string.h>
#include <stdio.h>
#include <time.h>
typedef struct nombreheure
{
char *classe;
int nombreheure;
}nombreheure;
typedef struct nombreclasses
{
char *classe;
int affecte;
}nombreclasses;
int main ()
{
nombreheure TAB[19];
TAB[0].classe="TCLF1";
TAB[1].classe="TCLF2";
TAB[2].classe="TCSF1";
TAB[3].classe="TCSF2";
TAB[4].classe="TCSF3";
TAB[5].classe="TCSF4";
TAB[6].classe="1LSHF1";
TAB[7].classe="1LSHF2";
TAB[8].classe="1LSHF3";
TAB[9].classe="1SEF1";
TAB[10].classe="1SEF2";
TAB[11].classe="1SEF3";
TAB[12].classe="2BACSP1";
TAB[13].classe="2BACSP2";
TAB[14].classe="2BACL1";
TAB[15].classe="2BACL2";
TAB[16].classe="2BACSVT1";
TAB[17].classe="2BACSVT2";
TAB[18].classe="TCSF5";
TAB[0].nombreheure=5;
TAB[1].nombreheure=5;
TAB[2].nombreheure=2;
TAB[3].nombreheure=2;
TAB[4].nombreheure=2;
TAB[5].nombreheure=2;
TAB[6].nombreheure=5;
TAB[7].nombreheure=5;
TAB[8].nombreheure=5;
TAB[9].nombreheure=2;
TAB[10].nombreheure=2;
TAB[11].nombreheure=2;
TAB[12].nombreheure=5;
TAB[13].nombreheure=5;
TAB[14].nombreheure=2;
TAB[15].nombreheure=2;
TAB[16].nombreheure=2;
TAB[17].nombreheure=2;
TAB[18].nombreheure=2;
nombreclasses TAB1[19];
TAB1[0].classe="TCLF1";
TAB1[1].classe="TCLF2";
TAB1[2].classe="TCSF1";
TAB1[3].classe="TCSF2";
TAB1[4].classe="TCSF3";
TAB1[5].classe="TCSF4";
TAB1[6].classe="1LSHF1";
TAB1[7].classe="1LSHF2";
TAB1[8].classe="1LSHF3";
TAB1[9].classe="1SEF1";
TAB1[10].classe="1SEF2";
TAB1[11].classe="1SEF3";
TAB1[12].classe="2BACSP1";
TAB1[13].classe="2BACSP2";
TAB1[14].classe="2BACL1";
TAB1[15].classe="2BACL2";
TAB1[16].classe="2BACSVT1";
TAB1[17].classe="2BACSVT2";
TAB1[18].classe="TCSF5";
TAB1[0].affecte=0;
TAB1[1].affecte=0;
TAB1[2].affecte=0;
TAB1[3].affecte=0;
TAB1[4].affecte=0;
TAB1[5].affecte=0;
TAB1[6].affecte=0;
TAB1[7].affecte=0;
TAB1[8].affecte=0;
TAB1[9].affecte=0;
TAB1[10].affecte=0;
TAB1[11].affecte=0;
TAB1[12].affecte=0;
TAB1[13].affecte=0;
TAB1[14].affecte=0;
TAB1[15].affecte=0;
TAB1[16].affecte=0;
TAB1[17].affecte=0;
TAB1[18].affecte=0;
int heuremax=21;
int n=0;
char *classe;
srand(time(NULL));
do
{
int val= rand()%19;
if (TAB1[val].affecte=0)
{
TAB1[val].affecte=1;
classe=TAB[val].classe;
n=n+TAB[val].nombreheure;
printf("\n la classe est %s , et le nombre totol d'heures est %d \n ",classe,n);
}
} while(n<21);
}
Aucun commentaire:
Enregistrer un commentaire