J'aurai besoin d'aide pour un exercice.
J'ai créé un tableau ECHF2 dans lequel j'y ai mis les résultats d'un tirage au sort sans remise répété 50 fois de 200 individus.
Mais je n'arrive pas à remplir le tableau des proportion pour chaque type d'individus à chaque echantilonnage isolément.

Je vous met le code complet que j'ai fait pour le calcul des types "PAS_ENFANT":

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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
#define NB_FEMMES 1000
#define ECHANTILLON 200
#define TIRAGE 50
 
/* Definition des types de femmes */
enum
{
   PAS_ENFANT = 0,
   UN_ENFANT = 1,
   DEUX_ENFANTS = 2,
   TROIS_ENFANTS = 3,
   CODES_FEMMES
};
 
static void affichagetab (int nb, int tab[])
{
   int i;
   for (i = 0; i < nb; i++)
      printf ("%i ", tab[i]);
}
 
static float SommePropfemmes_0 (float PROP0[], float tailletableau)
{
   float SumPROPfemmes_0 = 0;
   int i;
   for (i = 0; i < tailletableau; i++)
   {
      SumPROPfemmes_0 = SumPROPfemmes_0 + PROP0[i];
   }
   return SumPROPfemmes_0;
}
 
static float SommeCARREPropfemmes_0 (float carrePROP0[], float tailletableau)
{
   float SumCARREPROPfemmes_0 = 0;
   int i;
   for (i = 0; i < tailletableau; i++)
   {
      SumCARREPROPfemmes_0 = SumCARREPROPfemmes_0 + carrePROP0[i];
   }
   return SumCARREPROPfemmes_0;
}
 
int main (void)
{
   int i = 0, j = 0, k = 0, n = 0, o = 0;
   enum
   { NB_FEMMES2 = TIRAGE * ECHANTILLON };
   int hasard;
   int T1F[NB_FEMMES] = { 0 };
   int EchF2[NB_FEMMES2];
   double PROPfemmes_hasard2[CODES_FEMMES];
   int NBfemmes_0, PROPfemmes_0;
   float PROP0[50];
   float carrePROP0[50];
   float SumPROPfemmes_0 = 0;
   float SumCARREPROPfemmes_0 = 0;
   float tailletableau = 1000;
 
   srand (time (NULL));
 
/* Creation de T1F */
 
   for (k = 0; k < 200; k++)
      T1F[k] = 0;
   for (k = 200; k < 500; k++)
      T1F[k] = 1;
   for (k = 500; k < 900; k++)
      T1F[k] = 2;
   for (k = 900; k < 1000; k++)
      T1F[k] = 3;
 
/* Creation de 50 tirages aléatoires de 200 femmes dans T1F et enregistrement
   dans EchF2 */
 
   for (n = 0; n < TIRAGE * ECHANTILLON; n++)
   {
      for (j = 0; j < ECHANTILLON; j++)
      {
         hasard = (rand () % (NB_FEMMES));
         if (T1F[hasard] != 999)
            EchF2[n] = T1F[hasard];
         o++;
         T1F[hasard] = 999;
 
         if (EchF2[hasard] == PAS_ENFANT)
         NBfemmes_0++;
         PROPfemmes_0 = (NBfemmes_0 / 200);
         PROP0[i] = PROPfemmes_0;
         carrePROP0[i] = (PROPfemmes_0 * PROPfemmes_0);
      }
 
      for (k = 0; k < 200; k++)
         T1F[k] = 0;
      for (k = 200; k < 500; k++)
         T1F[k] = 1;
      for (k = 500; k < 900; k++)
         T1F[k] = 2;
      for (k = 900; k < 1000; k++)
         T1F[k] = 3;
   }
 
/* ____________________________________________________________ */
 
 /*Affichage du tableau general du tirage au sort*/
   printf ("  \n");
   printf (" EchF2 : \n");
   affichagetab (NB_FEMMES2, EchF2);
   printf ("  \n");
   printf (" \n");
 
 
/* Affichage du tableau des 50 proportions de femmes ayant 0 enfant et calcul
de la moyenne et de la variance : */
 
   for (i = 0; i < 50; i++)
   {
      printf ("%f ", PROP0[i]);
   }
 
   printf (" \n");
   printf (" \n");
   SumPROPfemmes_0 = SommePropfemmes_0 (PROP0, tailletableau);
   printf
      ("La moyenne des proportions de femmes ayant 0 enfant est egale a : %f ",
       SumPROPfemmes_0 / 50);
   printf (" \n");
   printf (" \n");
   SumCARREPROPfemmes_0 = SommeCARREPropfemmes_0 (carrePROP0, tailletableau);
   printf
      ("La variance des proportions de femmes ayant 0 enfant est egale a : %f ",
       (SumCARREPROPfemmes_0 / 49) -
       ((SumPROPfemmes_0 / 50) * (SumPROPfemmes_0 / 50) * 50) / 49);
   printf (" \n");
 
   return 0;
}