|
|
|
|
Bonjour,
Je commence à programmer en C et j'ai déjà un programme en tête, je le connais bien l'ayant déja réalisé en TI basic (calculettes de lycée).
Ce programme est un petit jeu simple où il faut deviner un chiffre (il n'est pas fini il me manque encore quelques instructions notamment les boucles et le chiffre au hasard).
je poste le contenu du programme:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int nbr, prop, difficult, tour ; /*déclaration de varibles: nbr sera a deviner, prop à entrer pour deviner, difficult fixera la limite supérieure de nbr et tour enregistrera le nombre de tour avant victoire*/
printf ("Enter your difficulty level, between 100 and infinite \n") ;
scanf ("%d", &difficult) ; /*ici l'utilisateur entre la limite supérieure de la variable nbr*/
/*ajouter ici le chiffre au hasard (variable nbr) puis la boucle*/
printf ("try to guess the number between 1 and %d \n", difficult) ;
scanf ("%d", &prop) ; /*ici l'utilistateur tente de deviner le chiffre*/
/*insérer les "if" sans oublier les boucles*/
if ( prop < nbr ) /*Ici les caractéres "{" et "}" servent à délimiter la fonction "if" car elle contient plusieurs instructions: on appelle ça un bloc*/
{ printf ("too little, try a bigger number !! \n") ;
tour = tour + 1 ;
/*ne pas oublier la boucle!!*/
}
if ( prop > nbr )
{ printf ("too big, try a tinyer number! /n") ;
tour = tour + 1 ;
/* la boucle */
}
if ( prop = nbr )
{ printf ( "Congratulation! You won! the number was %d /n", nbr ) ;
tour = tour + 1 ;
printf ( " You tried %d time before guessing!", tour ) ;
system("PAUSE") ;
return 0 ; }
voila (il est rédigé en anglais :D ).
J'ai 2 problèmes:
-Il me faut une instruction pour faire un nombre au hasard, entre 1 et la variable "difficult".
-ça tient peut être au fait que je n'ai pas encore mis les boucles mais le programme me signale toujours la dernière ligne comme une erreur (peut on enchainer les fonctions "if" comme je l'ai fait? En TI basic sa marche, en C je ne sais pas.
Merci beaucoup
Configuration: Windows Vista Firefox 3.0.11
Salut.
|
Merci (oui je me suis rendu compte de mon erreur moi aussi concernant le test booléen) mais qu'est ce que tu appelle les balises de code? Et enfin j'ai essayé "rand ()" mais je n'arrive pas à fixer les limites supérieures et inférieures au nombre... J'ai essayé entre les parenthése mais comment séparer la inférieure de la supérieure... Bref je débute :)
|
Je n'ai jamais pus supporter la "man" (elle me donne de l'urtiquaire) et c'est trop souvent man (oups mal) fichu pour les débutants...
|
Il te manque vraiment les bases...
NOM
rand, srand - Générateur de nombres aléatoires. // c'est le nom et une breve description de ce que fait la fonction
SYNOPSIS
#include <stdlib.h> //indique l'en-tête qu'il faut inclure pour utiliser la fonction
int rand (void); // prototype de la fonction, tu sais alors que rand ne prend pas d'argument et retourne un entier.
void srand (unsigned int seed);
RAND_MAX, est un mot en majuscule, il y a donc toutes les chances pour que ça soit une macro (#define) défini dans l'en-tête stdlib.h. En C la convention est de nommer en majuscules les macros.
Donc, rand() génère un nombre entre 0 et RAND_MAX, c'est tout, si tu change RANDMAX, ça ne changera pas la fonction, RAND_MAX est une variable qui peut être susceptible de changer dans le temps et les distribution, c'est pour ça qu'on la remplace par un mot, RAND_MAX a juste valeur d'alias, d'aide pas de définition de la fonction rand(). http://www.linux-france.org/article/man-fr/man3/rand-3.html Il est expliqué dans le man comment modifier les bornes du nombre aléatoire ! Pour le return, tu peux faire comme tu veux, mais penses que si ta condition du if n'est pas vérifié il n'y aura alors pas de return à la fonction main(). Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison) Char Snipeur |
Heu...
|
Non, c'est ce que je t'expliquait, ça ne sert à rien de modifier RAND_MAX, et en plus tu ne peux pas.
|