generer un nombre à deux chiffres en c 


FORUM

forum / C et C++ / generer un nombre à deux chiffres en c

Vous n êtes pas connecté

Page :1

generer un nombre à deux chiffres en c

Auteurs Messages
moise Posté à 22h07 le 20 Jun 13

Membre inscrit le 06/06/2013
Messages : 5
Localisation :

Bonjour je suis un samomoien,  je voudrai savoir comment generer un nombre à deux chiffres je dis bien à deux chiffres pas plus ni moins en c. s'il vous plait...


said Posté à 04h13 le 21 Jun 13

Membre inscrit le 16/09/2012
Messages : 1513
Localisation :

Salut !

Personnellement, je ne suis pas là pour résoudre des exercices. Mais je peux quand même contribuer.

Nous voulons générer des nombres aléatoires, alors pas grave car avec la fonction rand et ou  srand, nous pouvons arriver.
Cependant il y a l’exigence, un nombre à deux chiffres.
Alors on peut jouer le malin ainsi :
choisir un nombre se trouvant dans cet intervalle [10-99], mais là ce n’est pas juste car 01 est un nombre à deux chiffres.

Ou bien faire ceci : choisir un nombre entre [0-99] et contrôler le nombre généré. Si ce nombre est inferieur ou egal 9, donc il s’agit d’un chiffre donc on lui ajoute 0 devant. On sait bien 1=01. Donc soit dans ce cas, on lui dit génère moi ce nombre  avec un 0 en avant et on génère ce nombre et on l’affiche avec un 0 devant.
Bon certes il y a plusieurs méthodes permettant de résoudre ton problème mais personnellement je ne suis pas pour résoudre des exercices.

Bon voyons la méthode la plus simple, faisons ceci:
 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int x=rand()%99;
    if (x <=9)
    printf ("Nombre genere: 0%d\n",x);
    else
    printf ("Nombre genere : %d\n",x);
    system("pause");
    return 0;
}

Si tu veux générer 2 nombre, on peut faire ceci.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int i = 0;
    srand(time(NULL));
    int x=rand()%99;
    for (i = 0; i < 2; i++)
    if (x <=9)
    printf ("Nombre %d : 0%d\n",i + 1, x);
    else
    printf ("Nombre %d : %d\n",i + 1, x);
    system("pause");
    return 0;
}

Comme je viens de le dire, je ne suis pas là pour resoudre des exercices, donc je ne fais que m'amuser. Sinon la realité c'est autre chose. Ensuite je n'ai pas testé le code pour savoir si ça marche ou pas. apparemment ça devrait marcher.
Donc à toi de le tester et de te donner des idées sur ce que tu veux faire.
Oui il faut etre sérieux pour être pris au sérieux, si tu veux que ton probleme soit résolu, il faut commencer par montrer un code qui ne marche pas. Mais tu veux qu'on fasse tout pour toi, ça peut pas être car cela n'est pas le but d'un forum


moise Posté à 18h59 le 21 Jun 13

Membre inscrit le 06/06/2013
Messages : 5
Localisation :

oui oui je vois, finalement j'ai  trouvé une reponse ma question n'etais peut-etre pas très clair l'objectif etais d'utiliser un sous programme deux fois dans un programme pour generer deux nombres entier supérieur à 0 et inferieur à 100. et pour les deux variable a et b les nombres generer etaient tous les meme a chaque foi j'executais. j'ai dù enlevé le srand(time(NULL)) du sous programme car la remarque que j'ai fait c'est la double execution de ce programm ki me donnai les meme nombres c'est à dire:

sous programme:

int rand ()

{

          int aleat, i;

          srand(time(NULL));

          for (i=0;i<=1;i++)

          {

                aleat=rand ();

                printf ("%d", aleat);

           }

}

bref c'est ce qui faisait que à chaque fois que je faisais appell à rand srand(time(NULL)) s'executais aussi or ça devait s'executer une seul foi dans le programme... et la j'ai dù faire ceci:

sous programme:

int rand ()

{

          int aleat, i;

          for (i=0;i<=1;i++)

          {

                aleat=rand ();

                printf ("%d", aleat);

           }

}

et oui sans le  srand(time(NULL)); je vais directement le metre dans le programme avant meme la première appel du sous programme ci-dessus. et pour les nombres de 1 à 99 gè du faire celà: 

au lieu de   aleat=rand (); j'ai fais aleat=1+rand ()%99; ( le 1 fais en sort que le 99 fass aussi partir des nombres)

et pour enlever le 0 j'ai utilisé les  boucles!!! lol!!

merci ca meme et à la prochaine les samomoiens


Samomoi

Page : 1