Mettre en évidence un nombre en langage c

Fermé
stark173 Messages postés 105 Date d'inscription vendredi 26 juillet 2013 Statut Membre Dernière intervention 6 février 2015 - Modifié par pijaku le 12/12/2013 à 10:14
[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 - 12 déc. 2013 à 10:42
Bonjour, je souhaite réaliser un programme qui simule le tirage de nombres aléatoires d'une loterie. Pour cela, j'ai crée ma fonction random, et j'ai réalisé une grille de numéros allant de 1 à 90.
Ce que j'aimerai faire c'est, lorsque le numéro est tiré, le mettre en évidence dans la grille à l'aide d'un symbole quelconque. Pour le deuxième tirage cela serai pareille sauf qu'il faudrait mettre en évidence le tirage précédent et le tirage actuel, et ainsi desuite jusqu'à arriver à 90 tirages.

Mais je n'arrive pas à mettre en évidence les numéros tirés dan sma grille, merci de me venir en aide, voici mon code:
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define MAX 90
int main()
{printf("\n================================================================================\n\n");
    printf("Bonjour et bienvenue dans le jeux du Loto\n\n");
    printf("\n================================================================================\n\n");
int tab[MAX]={0},i,numero_tire,numero_deja_tire ; //Je crée un tableau que j'initialise à zero, ainsi que deux entiers : i et numerotire//

int num[MAX]={0}; //J'initialise un deuxième tableau à zero, il permettra au numéro tiré de prendre la valeur 1//

int grille[9][10]={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},C,L;

srand(time(NULL)); //Je crée la fonction random permettant de crée des nombre aléatoires//

printf("Pour realiser un tirage appuyez sur une touche\n\n"); // Je demande à l'utilisateur d'appuyer sur n'importe quelle touche

for(i=0;i<MAX;i++)
   {getch();


   tab[i]=(rand() % (MAX - 1)) + 1;// Pour i allant de zero à MAX(90), la fonction random va générer quatre vingt dix nombres aléatoires//
   numero_tire=tab[i];


while(num[numero_tire]==1)   //Si jamais on avait déjà entrée cette valeur, on recommence//
         {
   tab[i]=(rand() % (MAX - 1)) + 1;
   numero_tire=tab[i];
         }


   printf("Le numero tire est : le numero °%d°\n\n",numero_tire); // J'affiche le numéro tire//
   printf("\n================================================================================\n\n");
   num[numero_tire]=1;              //on entre 1 dans le 2eme tableau si c'est un nombre qu'on utilise pour la 1ere fois, si non il y a un zéro//

   for(C = 0; C<9; C++)
{printf("\n\n");
    for(L = 0; L<10; L++)
   printf("%3d", grille[C][L]);
}
printf("\n================================================================================\n");


printf("\n\nPour realiser un tirage appuyez sur une touche\n\n"); // Je demande à l'utilisateur d'appuyer sur n'importe quelle touche

printf("\n================================================================================\n\n");}




}

1 réponse

[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 089
Modifié par [Dal] le 12/12/2013 à 10:52
Salut stark173,

Puisque tu utilises conio.h, si ton compilateur a une version de conio avec textcolor, tu pourrais utiliser cette fonction pour changer la couleur des caractères (les compilateurs de Borland permettaient de faire cela avec une fonction d'affichage également particulière).

Cependant, les fonctions définies dans conio.h ne sont pas des fonctions C standard.

Alors, tu peux faire autrement, avec les "moyens du bord".

Par exemple, en mettant des crochets autour des numéros que tu veux signaler.

voilà une façon de faire :

char st[10];
if (num[grille[C][L]])
    sprintf(st, "[%d]", grille[C][L]);
else
    sprintf(st, "%d", grille[C][L]);
printf("%5s", st);


Si tu fais cela, tu peux te passer de conio.h et utiliser
getchar()
(qui est standard et inclus avec stdio.h) et remplacer les commentaires "appuyer sur une touche" par "appuyer sur Enter".

D'ailleurs, printf a besoin de
#include <stdio.h>
, donc tu devrais explicitement l'inclure de toutes façons.


Dal
0