rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[C] Tirage aléatoire

Sting, le jeudi 25 mai 2006 à 09:11:24
Salut,

j'ai écrit ce code qui me permet d'avoir 3 chiffres compris entre 0 et 99 de façon aléatoire.

Je voudrais savoir comment faire pour que le chiffre 100 puisse être pris en compte or avec mon code, ce n'est pas le cas.

Merci

Code :
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>



int main(void){
  int val1, val2, val3;
  char buff[BUFSIZ];
  
  srand((unsigned)time(NULL));

  val1 = rand()%100;
  val2 = rand()%100;
  val3 = rand()%100;
  sprintf(buff, "%d,%d,%d",val1,val2,val3);
  printf("%s\n", buff);
  
  return 0;
}

Répondre à Sting  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le jeudi 25 mai 2006 à 09:36:46
Répondre à lami20j

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sting, le jeudi 25 mai 2006 à 15:09:32
Salut,

en suivant le lien que tu as donné, j'ai écrit ceci pour avoir un nombre compris entre 0 et 100:
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>



int main(void){
  int val1, val2, val3;
  char buff[BUFSIZ];
  
  srand((unsigned)time(NULL));
  
  //Pour avoir des nombres a>=0 et b<=100 
  val1 = (int)((float)rand()*(100+1)/(RAND_MAX+1));
  val2 = (int)((float)rand()*(100+1)/(RAND_MAX+1));
  val3 = (int)((float)rand()*(100+1)/(RAND_MAX+1));
  
  sprintf(buff, "%d,%d,%d",val1,val2,val3);
  printf("%s\n", buff);
  
  return 0;
}


Le problème est que j'obtiens ceci :
aleatoire.c: In function ‘main’:
aleatoire.c:14: attention : débordement d'entier dans l'expression
aleatoire.c:15: attention : débordement d'entier dans l'expression
aleatoire.c:16: attention : débordement d'entier dans l'expression
Répondre à Sting

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le jeudi 25 mai 2006 à 16:11:01
Salut,

Je voudrais savoir comment faire pour que le chiffre 100 puisse être pris en compte or avec mon code, ce n'est pas le cas.

Ben, met au lieu de 100 met 101
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>



int main(void){
  int val1, val2, val3;
  char buff[BUFSIZ];
  
  srand((unsigned)time(NULL));

  val1 = rand()%101;
  val2 = rand()%101;
  val3 = rand()%101;
  sprintf(buff, "%d,%d,%d",val1,val2,val3);
  printf("%s\n", buff);
  
  return 0;
}
et 100 va sortir, aussi 0. J'ai testé.

lami20j
Répondre à lami20j

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Fenrir, le mercredi 9 août 2006 à 10:42:30
Je voudrais savoir comment je pourrais pour faire apparaître les chiffres de 1 à 100 (merci pour le code de départ il m'a donné un peu espoir déjà)
Merci d'avance
Répondre à Fenrir

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Darshu, le mercredi 9 août 2006 à 10:54:33
Tu veux un tirage aléatoire ou afficher tous les chiffres de 1 à 100 ?

Si c'est le premier cas, le code est au dessus (et génère 3 nombres), si c'est le deuxième :
int main()
{
   int i=1;
   while (i < 101)
   {
      printf("%d ",i);
      i++;
   }
   return 0;
}
Ca te les affichera tous à la suite ... Tu peux introduire des sauts de ligne avec \n dans le printf.

T'as pensé à regarder sur Google avant de poser ta question ? 
Répondre à Darshu

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
poof65, le mercredi 9 août 2006 à 16:01:51
Pour un nombre entre 1 et 100
1 + rand() % 100
--------------------------------------------------------
L'informatique est un long fleuve pas tranquille !!!
Répondre à poof65

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le jeudi 10 août 2006 à 13:39:03
plus général. On veut un interval [xmin,xmax]
alors la solution est:
rand()%(xmax-xmin+1)+xmin;
voila, pour anticiper la prochaine question :
et pour avoir des nombre alléatoire compris entre 1 et 101, comment faut-il que je fasse ? Salutation !
Char Snipeur
Répondre à Char Snipeur

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antoine03, le jeudi 27 mars 2008 à 10:16:49
aucun des codes ne marchent j'ai besoin d'un code de tirage au sort de 1 a 100 et un autre de 1 à 3
des codes en entier qui marche svp




merci ce qui m'aide
Répondre à antoine03

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
C_Master, le samedi 29 mars 2008 à 15:14:34
Salut!


Si tu veux un code de tirage au sort de 1 a 100 et un autre de 1 à 3, je te propose ceci:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
/* déclarations */
int i;
int ch100,ch3,ch3_1,ch3_2,ch3_3;

srand(time(NULL));

/* boucle pour 5000 tirages, histoire de voir ci 1 et 100 sont pris en compte */
for (i=0;i<5000;++i)
{
/* Nb de 1 a 100 */
ch100 = rand () % 100;

/* Nb de 1 a 3 */
ch3 = rand () % 3;

/* affichage */
printf ("*** TIRAGE No %d:\nNb hazard de 1 a 100: %d\nNb hazard de 1 a 3: %d\n",i+1,ch100+1,ch3+1);

/* test pour voir si 1 et 100 sont bien pris en compte */
if (ch100+1==100 || ch100+1==1)
{
printf("\n* TOUVE %d au tirage: %d *\n",ch100+1,i+1);
system ("pause");
}
}
system("PAUSE");
return 0;
}


Maintenant, si tu veux un code qui tire au sort 3 chiffres de 1 a 100 je te propose ceci:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
/* déclarations */
int i;
int val_1,val_2,val_3;

srand(time(NULL));


/* 3 Nb de 1 a 100 */
val_1 = rand () % 100;
val_2 = rand () % 100;
val_3 = rand () % 100;


/* affichage */
printf ("*** TIRAGE de 3 nombres entre 1 et 100:\n\n"
"nombre 1: %d\nnombre 2: %d\nnombre 3: %d\n\n",val_1+1,val_2+1,val_3+1);

system("PAUSE");
return 0;
}

En fait, il faut ajouter 1 à ta valeur de base.
Répondre à C_Master

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antoine03, le dimanche 30 mars 2008 à 12:07:07
désolé sa ne marrche aps
Répondre à antoine03

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
C_Master, le dimanche 30 mars 2008 à 12:46:21
Salut, antoine03

Quelle est ta question precise?
Car les 2 petits progs que je t'ai donnés plus haut fonctionnent bel et bien à condition que tu soit sous Windows Xp ou 98 pour la compilation et l'execution.
Si tu es sous Vista, il faut trouver le bon compilateur avec d'éventuelles retouches (ex: IccWin32), mais l'exe marche tout aussi bien.
(Les 2 progs ci-dessus ont été fait en C sous dev Cpp).
Répondre à C_Master

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antoine03, le dimanche 30 mars 2008 à 13:49:36
des xp et 98 on en trouve plus en magazin bien sur que j'ai vista xD
je n'y connais rien du tous moi je cherhe un tirage au sort de 1 à 100 pour que sa tire au sort un seul numéro de 1 à 100 et un autre de 1à3.
Répondre à antoine03

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
C_Master, le dimanche 30 mars 2008 à 14:54:40
Voici donc un prog que tu peux recopier, et qui t'affichera 1 nombre au hazard de entre 1 et 100, et un autre entre 1 et 3.
Chaque fois que tu relanceras le prog, tu auras un chiffre different entre 1 et 100 etun autre entre 1 et 3.
Dans tous les cas, le resultat n'affichera jamais 0, mais il pourra afficher 100 pour de 1 à 100 et 3 pour de 1 à 3.
Si tu fais un copier-coller de ce prog dans Iccwin32, ou visual, tu auras le resultat decrit plus haut!


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
/* déclarations */
int nb1_100,nb1_3;

srand(time(NULL));


/* Nb de 1 a 100 au hazard */
nb1_100 = rand () % 100;

/* Nb de 1 a 3 au hazard */
nb1_3 = rand () % 3;

/* affichage */
printf ("*** Nb pris au hazard de 1 a 100: %d\n*** Nb pris au hazard de 1 a 3: %d\n",nb1_100+1,nb1_3+1);

system("PAUSE");
return 0;
}
Répondre à C_Master

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le lundi 31 mars 2008 à 08:56:34
Tu es trop gentil.
Moi, il me faudrait un programme C qui me demande les types de fichier multimédia que je veux et qui va les cherché sur mon disque dur, qui me fait une liste et les trie.
Tu peux me faire ça ? Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antoine03, le dimanche 30 mars 2008 à 21:01:30
d'accord merci donc il me reste plus qua installé Iccwin32 ou visual c'est bien sa ?
Répondre à antoine03

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
C_Master, le dimanche 30 mars 2008 à 21:31:56
Oui.Pourquoi, tu utilise quoi comme compilateur?
Répondre à C_Master

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
antoine03, le lundi 31 mars 2008 à 15:29:50
je croyais t'avoir dis que je n'y connaisé rien donc je te le dis je n'y coné rien mdr enfaite je sais pas se que c'est un compilateur on peus dire que j'en aprend tous les jours moi j'avais fais copier collé sur mon site en croyant que sa allez marché mdr !!!!
Répondre à antoine03

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Char Snipeur, le mardi 1 avril 2008 à 08:40:25
faut dire, tu n'expose pas non plus ton problème correctement, et tu ne dit pas ce que tu veux faire.
Là tu es dans le forum programmation, sur un message qui parle d'un programme écris en C. Donc, on te répond comme à quelqu'un qui fait du C.
Vu que tu parle de site, je devine que c'est pour une page internet. Le mieux est d'ouvrir un nouveau message dans le forum Webmastering et de poser exactement ta question (ce que tu veux faire dans quel domaine et avec quels outils) Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur
Répondre à Char Snipeur
Logiciels pertinents trouvés dans les téléchargements
Télécharger CCleaner 2.10.618CCleaner - CCleaner (Crap Cleaner) est un utilitaire de nettoyage gratuit permettant de garantir un respect de la vie privée en...Catégorie: Anonymat/Confidentialité
Licence: Freeware/gratuit
Télécharger Vista Codec Package 4.7.3Vista Codec Package - Vista Codec Package regroupe une collection impressionnante de codecs (audio et vidéo), permettant d'ouvrir la plupart...Catégorie: Codecs
Licence: Freeware/gratuit
Télécharger Free Mp3 Wma Converter 2.0Free Mp3 Wma Converter - Free Mp3 Wma Converter permet de convertir tout vos fichiers Mp3 , Wma , Ogg , AAC , m4a , mp4 , Ape , flac, Wav : ...Catégorie: Conversion
Licence: Freeware/gratuit
Télécharger CD Burner XP 4.2.1.864CD Burner XP - CD Burner XP est un logiciel de gravure complet possédant les fonctionnalités suivantes : Grave tous types de médias, à...Catégorie: Gravure
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [C] Tirage aléatoire »