Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2151 connectés 

  FORUM HardWare.fr
  Programmation
  C

  call a C function from another function !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

call a C function from another function !

n°2092060
student_ma​ster
Etudiant
Posté le 29-07-2011 à 11:21:16  profilanswer
 

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:
 

Code :
  1. void  affect_client_to_days(JOURS *days, donnee *data, usine1 *usine, client *cust, int TotDemCust)
  2. {
  3.     int j=0;
  4.     int t;
  5.     int jr;
  6.     int dem;
  7.     int it=0;
  8.     int nbr_c=1;
  9.     srand(time(NULL));
  10.     int nombre_aleatoire = 0;
  11.     for (jr=1; jr<=data->nbr_periodes; jr++)
  12.         {               
  13.                    days[jr].TotDemCust = 0;
  14.                    days[jr].nbr_clients= 0;
  15.                    while (((usine->dem_jour[jr]+usine->stock[jr-1]) > TotDemCust) && (it < data->nbr_clients))
  16.                    {
  17.                          nombre_aleatoire = rand()%data->nbr_clients+1;
  18.                          j=nombre_aleatoire;
  19.                          if((cust[j].Nbvisites < cust[j].frequence)&& (days[jr].cust[j]==0))
  20.                                   {
  21.                                           days[jr].nbr_clients++;
  22.                                           cust[j].Nbvisites++;
  23.                                           days[jr].cust[j]=1;
  24.                                           days[jr].listcust[days[jr].nbr_clients]=j;
  25.                                           days[jr].TotDemCust+=cust[j].demande;
  26.                                           printf("affecter le client numero %d a la periode %d\n",nombre_aleatoire, jr);
  27.                                   }
  28.                    it++;
  29.                    }
  30.                    it=0;
  31.                         if(usine->dem_jour[jr] > days[jr].TotDemCust)
  32.                                   {
  33.                                           j=1;
  34.                                           while ((j <= data->nbr_clients) || (usine->dem_jour[jr] > days[jr].TotDemCust))
  35.                                           {
  36.                                               if((cust[j].Nbvisites < cust[j].frequence)&& (days[jr].cust[j]==0))
  37.                                               {
  38.                                                   days[jr].nbr_clients++;
  39.                                                   cust[j].Nbvisites++;
  40.                                                   days[jr].cust[j]=1;
  41.                                                   days[jr].listcust[days[jr].nbr_clients]=j;
  42.                                                   days[jr].TotDemCust+=cust[j].demande;
  43.                                               }
  44.                                               j++;
  45.                                           }
  46.                                    }
  47.          }
  48.          usine->stock[jr]=usine->stock[jr-1]+days[jr].TotDemCust-usine->dem_jour[jr];
  49.          it=0;
  50. }


 
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.
 
Fonction 2 :
 

Code :
  1. void rechercher_max_quantite(donnee *data, client *cust)
  2. {                   
  3.     int j = 1;
  4.     int i;
  5.     double max;
  6.     int quantite, num_client;
  7.     for (i=1; i<=data->nbr_depots; i++)
  8.     {
  9.         max = cust[i].demande;
  10.  for (j = data->nbr_depots; j <= data->nbr_clients + data->nbr_depots; j++)
  11.  {
  12.             if (cust[i].demande < max)
  13.             {
  14.                max = cust[i].demande;
  15.                quantite = i;
  16.                num_client = j - data->nbr_depots;
  17.             }
  18.         }
  19.     }
  20.         if((j - data->nbr_depots - 1) == data->nbr_clients)
  21.              printf("Le client %d a la quantite suivante %d\n", num_client, max);
  22. }


 
Je ne sais pas c'est quoi la syntaxe qui permet de faire appel d'une fonction et l'utiliser dans une autre fonction.
 
Merci pour vos remarques et vos réponses.
Cdls.

mood
Publicité
Posté le 29-07-2011 à 11:21:16  profilanswer
 

n°2092066
shaoyin
Posté le 29-07-2011 à 11:27:16  profilanswer
 

Tu ne sais pas comment on appelle une fonction en C, après avoir tapé tout ce code ? C'est une blague ?
 
Ou alors j'ai pas saisi tout le problème ?

n°2092069
student_ma​ster
Etudiant
Posté le 29-07-2011 à 11:35:09  profilanswer
 

shaoyin a écrit :

Tu ne sais pas comment on appelle une fonction en C, après avoir tapé tout ce code ? C'est une blague ?
 
Ou alors j'ai pas saisi tout le problème ?


 
Non ce n'est pas une blague  :??: !! Je sais que l'appel d'un fonction est sous cette forme par exemple :
 

Code :
  1. int fctA(int a, intb){
  2.     //dosomestuff
  3.     return val;
  4. }
  5. void fctB(){
  6.     int nb1=0;
  7.     int nb2=0;
  8.     int RetourDeFonctionA = fctA(nb1,nb2);
  9. }


 
mais j'aimerai l'appliquer sur mon cas qui retourne une liste de clients stockés dans un tableau. Si vous pouvez me donner une première piste je serai ravi.
 
Merci.

n°2092073
shaoyin
Posté le 29-07-2011 à 11:42:07  profilanswer
 

Non, vraiment, je ne vois pas où est le problème... Manifestement, tu sais faire un appel de fonction, alors je ne vois pas où ça coince ?  
C'est le fait de passer des arguments par variable que tu ne maîtrises pas ? Tu as essayé d'appeler ta fonction déjà ? Il y a un problème de compilation ou d'exécution ?

n°2092392
student_ma​ster
Etudiant
Posté le 31-07-2011 à 14:23:03  profilanswer
 

shaoyin a écrit :

Non, vraiment, je ne vois pas où est le problème... Manifestement, tu sais faire un appel de fonction, alors je ne vois pas où ça coince ?  
C'est le fait de passer des arguments par variable que tu ne maîtrises pas ? Tu as essayé d'appeler ta fonction déjà ? Il y a un problème de compilation ou d'exécution ?


 
Merci problème résolu.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  call a C function from another function !

 

Sujets relatifs
warning: ISO C forbids assignment between function pointer and `void *Absolute path from any file of the server
DLL et C++Interface VBA/C++
[C++] Extraire images d'un fichier mxf avec Mxflib Solutionné dimension*prix if dimension<350 call 350.html dans iframe
Execution d'une Macro Access a partir d'un code C#[ C# ] Externaliser fichier resource
[C#] Traitement de checkbox ou textbox en boucle 
Plus de sujets relatifs à : call a C function from another function !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR