Exercice langage C: programme qui lit les résultats du tirage du Loto
Rédigé par GC Team, Publié le 17 Mars 2012, Mise à jour le Samedi, 17 Décembre 2022 20:55Travail à 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_corrects
, alloue_tableau
, stocke_numeros_corrects
et affiche_numeros
.
#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;
}