Bonjour à Tous,
J'aimerais savoir si vous pouvez m'aider à faire un appel à une fonction qui permet de retourner une liste de clients aléatoirement.
Fonction 1:
J'ai besoin maintenant d'utiliser cette liste de clients dans une autre fonction qui permet de les classer par ordre décroissant en fonction de leur demande (sachant que les quantités de demandes se trouvent dans un fichier texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 void affect_client_to_days(JOURS *days, donnee *data, usine1 *usine, client *cust, int TotDemCust) { int j=0; int t; int jr; int dem; int it=0; int nbr_c=1; srand(time(NULL)); int nombre_aleatoire = 0; for (jr=1; jr<=data->nbr_periodes; jr++) { days[jr].TotDemCust = 0; days[jr].nbr_clients= 0; while (((usine->dem_jour[jr]+usine->stock[jr-1]) > TotDemCust) && (it < data->nbr_clients)) { nombre_aleatoire = rand()%data->nbr_clients+1; j=nombre_aleatoire; if((cust[j].Nbvisites < cust[j].frequence)&& (days[jr].cust[j]==0)) { days[jr].nbr_clients++; cust[j].Nbvisites++; days[jr].cust[j]=1; days[jr].listcust[days[jr].nbr_clients]=j; days[jr].TotDemCust+=cust[j].demande; printf("affecter le client numero %d a la periode %d\n",nombre_aleatoire, jr); } it++; } it=0; if(usine->dem_jour[jr] > days[jr].TotDemCust) { j=1; while ((j <= data->nbr_clients) || (usine->dem_jour[jr] > days[jr].TotDemCust)) { if((cust[j].Nbvisites < cust[j].frequence)&& (days[jr].cust[j]==0)) { days[jr].nbr_clients++; cust[j].Nbvisites++; days[jr].cust[j]=1; days[jr].listcust[days[jr].nbr_clients]=j; days[jr].TotDemCust+=cust[j].demande; } j++; } } } usine->stock[jr]=usine->stock[jr-1]+days[jr].TotDemCust-usine->dem_jour[jr]; it=0; }
Fonction 2 :
Je ne sais pas c'est quoi la syntaxe qui permet de faire appel d'une fonction et l'utiliser dans une autre fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 void rechercher_max_quantite(donnee *data, client *cust) { int j = 1; int i; double max; int quantite, num_client; for (i=1; i<=data->nbr_depots; i++) { max = cust[i].demande; for (j = data->nbr_depots; j <= data->nbr_clients + data->nbr_depots; j++) { if (cust[i].demande < max) { max = cust[i].demande; quantite = i; num_client = j - data->nbr_depots; } } } if((j - data->nbr_depots - 1) == data->nbr_clients) printf("Le client %d a la quantite suivante %d\n", num_client, max); }
Merci pour vos remarques et vos réponses.
Cdls.
Partager