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 <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <strings.h>
int *Creer_Stock () // creer un stock de 10 engins
{
int i,poidsEngin,*stock;
srand (time (NULL)); // prend le timestamp pour l'initialisation et s'en sert de "graine" pour le random
stock = malloc(sizeof(int)*10); // allocation de mémoire
if (stock == NULL) exit (0); // si l'allocation se fait sans prob, on continue
else
{
for (i = 0 ; i < 10 ; i++) // on parcours les 10 cases du tableau
{
poidsEngin = ( rand() % 7 ) + 4 ; // poids entre 4 et 10
stock [i] = poidsEngin ; // remplissage du tableau
}
return stock; // renvoie le tableau
}
}
void Gerer_Stock( int *tab ,int *taille , int *poids ) // pour connaitre le poids d'un stock
{
int i=0;
for (i=0 ; i<*taille ; i++) // tant qu'on ne dépasse pas la tailleMAX
{
*poids = *poids + tab[i] ; // on somme tous les poids du tableau
}
// on ne renvoie rien car on travaille sur l'adresse des valeurs directement
}
int *Creer_Stock_Max (int *taille) // creer un Stock sans dépasser 150 en poids total
{
srand (time (NULL));
int i=0,poidsEngin,*stock,poidsTotal=0;
stock = malloc(sizeof(int)*50); // allocation suffisemment grande
if (stock == NULL) exit (0);
else
{
while (poidsTotal <= 140)
{
poidsEngin = ( rand() % 7 ) + 4 ;
stock [i] = poidsEngin ;
poidsTotal += poidsEngin;
i++ ;
}
*taille = i ; // i est la taille du tableau
return stock;
}
}
int main()
{
int i,taille=0,poids=0;
int *tab; // déclaration du tableau
tab = Creer_Stock_Max(&taille); // appel de la fonction pour creer un stock
Gerer_Stock (tab,&taille,&poids); // on rentre en paramêtre les adresse de taille , et de poids
for (i=0 ; i<taille ; i++)
{
printf ("%d ",tab[i]); // affiche stock total
}
printf ("\n\nNombre d'engin : %d\nPoids total du stock : %d\n",taille,poids);
return 0;
} |
Partager