Exercice langage C: programme qui lit les résultats du tirage du Loto

Travail à Faire:

Ecrivez un programme qui lit les résultats du tirage du Loto (6 numéros) et les stocke dans un tableau. Le programme lira ensuite les 6 numéros que vous avez joués.

La prochaine étape du programme consiste à déterminer combien de numéros corrects vous avez tirés. Pour cela, comparez les deux tableaux de numéros et stockez les numéros corrects dans un nouveau tableau dont la taille sera exactement le nombre de numéros corrects.

Finalement, le programme devra afficher vos numéros ainsi que les numéros corrects.

Remarque: n'écrivez pas tout le code en un seul bloc, mais modularisez-le en utilisant plusieurs fonctions. Idéalement, votre programme devrait contenir les fonctions suivantes: lire_numeros,compte_numeros_correctsalloue_tableaustocke_numeros_corrects et affiche_numeros.


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
#include 

using namespace std;

int *alloue_tableau(int taille) {
  return new int[taille];
}

int *lire_numeros(void) {
  int *numeros = alloue_tableau(6);
  for (int i=0; i<6; i++) {
    cout << "Numero " << i+1 << ": ";
    do 
      cin >> numeros[i];
    while (numeros[i] < 1 || numeros[i] > 45);
  }

  return numeros;
}

int compte_numeros_corrects(int *t1, int *t2) {
  int matches = 0;
  for (int i=0; i<6; i++)
    for (int j=0; j<6; j++)
      if (t1[i] == t2[j])
        matches++;

  return matches;
}

void stocke_numeros_corrects(int *t1, int *t2, int *c) {
  int index = 0;
  for (int i=0; i<6; i++)
    for (int j=0; j<6; j++)
      if (t1[i] == t2[j]) {
	c[index] = t1[i];
	index++;
      }
}

void affiche_numeros(int *t, int taille) {
  for (int i=0; i<taille; i++)
    cout << t[i] << " ";
  cout << endl;
}


int main(int argc, char **argv) {
  cout << "Veuillez entrer le resultat du tirage:" << endl;
  int *tirage = lire_numeros();

  cout << endl << "Veuillez entrer vos numeros:" << endl;
  int *numeros_perso = lire_numeros();

  int nombre_corrects = compte_numeros_corrects(tirage, numeros_perso);

  int *corrects = alloue_tableau(nombre_corrects);

  stocke_numeros_corrects(tirage, numeros_perso, corrects);

  cout << "Vous avez joue " << nombre_corrects << " numero(s) correct(s)." << endl;
  cout << "Numeros du tirage:" <<endl;
  affiche_numeros(tirage, 6);
  cout << endl << "Vos numeros corrects:" << endl;
  affiche_numeros(corrects, nombre_corrects);

  delete [] corrects;
  delete [] numeros_perso;
  delete [] tirage;

  return 0;
}