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);
} |
Partager