bonsoir
j'ai un travail a faire c'est d'affecter les objets dans des boites de telle sorte le tailles des objets soit inferieur ou egale au capacite du boite et l'ojet qu'on a mit dans la boite on peut pas l'affecter une autre fois voici qu'est ce que j'ai fait mail il ne marche pas s'ils vous plait aidennnttt moi c'est tres urgent

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<stdafx.h> 
#include<time.h>  
# include <stdlib.h>  
# include <stdio.h>  
#include<math.h>  
 
int i,n,taille,*items,*boites,*M;
void sommeTableau (int tableau[], int *pointeursomme); 
 
void tridecroissant(int *M,int n)
{
	int i,j,k;
 
	for(i=0;i<n-1;i++)
	   for(j=i+1;j<n;j++)
		 if(M[i]<M[j])
			{
				k=M[i];
				M[i]=M[j];
				M[j]=k;
			}
 
}
int sommeTableau (int tableau[],int n) 
{ 
int i; 
int somme=0;
for(i=0;i<n;i++) 
{ 
somme = somme + tableau[i]; 
 
} 
return somme;
 
} 
int count(int *tab)
{
      int i;
 
     for (i = 0; tab[i]; i++)
           ; 
     return (i);
}
int binpacking(int *M,int *P,int t)
{
	bool affecte=false;
	int i,j,b=0;
	for(i=0;i<count(M);i++)
	{
		affecte=false;
		for( j=0;j<count(P);j++)
		{
			if(t - sommeTableau(M,count(M)) >= P[j])
				M[i]=P[j];
				affecte=true;
				b=count(M);
				break;	
		}
	}
	return b;
}
 
 
// Le programme principal
 
void main(int argc, char *argv[]) 
{ 
	//int n;
int items[9] = {30,50,150,110,56,125,14,87,65}; 
int *boites;
boites = new int[n];
int i=0; 
int c;
int somme;
tridecroissant(items,9);
 
 
for(i=0; i<9; i++) 
{ 
 
	printf("%d\n",items[i]); 
} 
somme=sommeTableau(items,9);
printf("la somme est %d\n",somme); 
 
c=binpacking(boites,items,150);
printf("la nombre de boite est %d\n",c);
 
}