CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

pb message d'erreur

Aboukir
Aboukir
Niveau 9
09 décembre 2005 à 14:59:25

:salut:

J´ai fait un petit programme dont le but est de me fournir un nombre aléatoire dans un intervalle [1;x] avec x variable.

Le voici :

  1. include <stdio.h>

/* La ligne suivante est necessaire pour utiliser rand() et srand() */

  1. include <stdlib.h>

main ()
{
int nombre_max, nombre;

/* On initialise le generateur de nombres aleatoires afin que des executions repetees du programme choisissent un nombre different a chaque fois. */
srand(time(NULL));

do
{
/* Entrée du nombre max */
printf("Entrer le nombre maximum (0 pour quitter) : \n");
scanf("%d", &nombre_max);

/* On tire un nombre au hasard dans l´intervalle [1;nombre_max]. */
nombre = rand()%nombre_max + 1;

printf("%d\n", nombre);
}

while (nombre_max != 0);
}

IL compile sur Dev-C++ mais quand je met 0 pour pour mettre fin au programme, j´ai un message d´erreur de windows (... .exe a rencontré un pb et doit fermer...)
Est-ce normal?

Aboukir
Aboukir
Niveau 9
09 décembre 2005 à 15:08:39

C´est peut-être une erreur de bleu mais ce serait normal car j´en suis un.

godrik
godrik
Niveau 30
09 décembre 2005 à 15:10:30

rand()%nombre_max
si nombre max vaut 0
alors tu fais une division par zero
prefere:
printf("Entrer le nombre maximum (0 pour quitter) : \n");
scanf("%d", &nombre_max);
do
{

/* On tire un nombre au hasard dans l´intervalle [1;nombre_max]. */
nombre = rand()%nombre_max + 1;

printf("%d\n", nombre);
/* Entrée du nombre max */
printf("Entrer le nombre maximum (0 pour quitter) : \n");
scanf("%d", &nombre_max);
}

while (nombre_max != 0);

Aboukir
Aboukir
Niveau 9
09 décembre 2005 à 15:19:02

Merci bcp pour ta solution.

Malgré tout, le problème arrive tjs si je met 0 dès le début (tjs pour la même raison) mais c´est pas grâve.

Aboukir
Aboukir
Niveau 9
09 décembre 2005 à 15:40:39

J´ai trouvé la solution à mon prob (j´ai ajouté un petit if dans la boucle do/while).
Merci de m´avoir mis sur la voie avec la division par 0.

godrik
godrik
Niveau 30
09 décembre 2005 à 16:12:46

c´est un plaisir

guyver2
guyver2
Niveau 10
09 décembre 2005 à 18:43:20

godrik, la version que tu propose est sensible au meme probleme que la version de aboukir dans le cas (idiot mais pas impossible) ou l´utilisateur entre directement 0.

donc je dirait pour pinailler qu´il vaut mieux faire

rand()%nombre_max
si nombre max vaut 0
alors tu fais une division par zero
prefere:
printf("Entrer le nombre maximum (0 pour quitter) : \n");
scanf("%d", &nombre_max);
while (nombre_max != 0)
{
/* On tire un nombre au hasard dans l´intervalle [1;nombre_max]. */
nombre = rand()%nombre_max + 1;

printf("%d\n", nombre);
/* Entrée du nombre max */
printf("Entrer le nombre maximum (0 pour quitter) : \n");
scanf("%d", &nombre_max);
}

godrik
godrik
Niveau 30
09 décembre 2005 à 18:56:24

guyver2, je laisse un peu les gens bosser aussi... :)
deplus, tu peux facilement imaginer, que la personne qui lance l´applicatio compte faire quelquechose avec...

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment