bonjour tout le monde!
j´ai voulu commencer le c++,je me suis donc acheté un petit bouquin,mais leur explication de la fonction (je ne sais pas is c´est le bon mot) "return" est treees tres vague...pouvez vous m´eclairer dessus,parce que moi j´ai rien compris ^^
merci d´avance!
Salut cher ami: Si ici tu ne trouves ton explication c´est qu´il y a un probléme :
http://www.siteduzero.com/tuto-3-2842-1-les-fonctions.html
PS : c´est du C et non du C++ mais je pense pas qu´il y ai une différence avec return
Bonne chance
aah!
le site du zero se met au C++?!
et moi qui croyait qu´il ne fesait que le html,le css et le php!
je fonce dessus,merci beaucoup! ^^
ammoniac
les questions des débutants ne sont jamais idiotes ? enfin presque jamais y´a qu´a voir les miennes pour rigoler ^^
![]()
Voilà je commence avec la programmation (10jours que j´ai commencé ^^) et j´ai essayé de réaliser un petit programme tout bidon (en C), c´est un jeu de + ou -, l´ordi tire un chiffre mystère, le joueur doit le deviner et à chaque essai du joueur, l´ordi dit son chiffre est plus ou moins grand que celui du joueur...
Et j´ai un problème, j´ai voulu améliorer un peu ce concept et en fait, qd le joueur trouve le nombre mystere, je voudrai que l´ordi propose au joueur de faire une nouvelle partie. Voilà mon code source (j´espère qu´il sera lisible une fois posté :$ )
int main(int argc, char *argv[])
{
int envie_de_jouer =1;
while (envie_de_jouer ==1)
{
const long MAX=100, MIN=1;
long nombreMystere = 0, nombre_du_joueur=0, nombre_de_coups=0, nombre_de_partie=0;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
while (envie_de_jouer ==1)
{
if (nombre_de_partie==0);
{
//Règles du jeu pour nombre_de_parties ==0
printf("Le but de ce jeu et de trouver un nombre aleatoire compris entre 1 et 100.\n");
printf("Entrez un nombre.\n");
printf("L´ordi vous dira si le bon nombre est superieur ou inferieur\n");
printf("a celui que vous avez entre\n\n\n");
}
do //Boucle du jeu
{
printf("Entrez un nombre \n"); //Demande d´entrer un nombre
scanf("%ld", &nombre_du_joueur); //Joueur entre son nombre
nombre_de_coups++; //Incrementation du nombre de coups
if (nombre_du_joueur < nombreMystere)
printf("C´est plus ! \n\n\n");
else if (nombre_du_joueur > nombreMystere)
printf("C´est moins ! \n\n\n");
else printf("Bravo ! Vous avez trouve le nombre mystere en %ld coups ! \n\n\n", nombre_de_coups);
}
while (nombre_du_joueur != nombreMystere);
//Fin de la boucle du jeu
//Commentaires en fonction du nombre de coups necessaires
if (nombre_de_coups == 1)
{
printf("Eh ben y´en a qu´ont de la chance !! !\n\n");
}
else if (nombre_de_coups ==2 || nombre_de_coups ==3 || nombre_de_coups ==4 || nombre_de_coups ==5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else if (nombre_de_coups == 6 || nombre_de_coups == 7)
{
printf("Bof pas super...\n\n");
}
else
{
printf("Plus de 7, t´es une vraie merde !\ n\n");
}
//Fin des commentaires en fonction du score du joueur
//Demande si on veut rejouer
printf("T´en refait une ?\ n");
printf(" 1 : Oui\n");
printf(" 2 : Non\n");
scanf("%ld", envie_de_jouer);
if (envie_de_jouer =! 1)
{
printf("Merci d´avoir joue !\ n Un super jeu de Alex ´Ikki_2504´ B. (mdr)");
}
else
{
(nombre_de_partie++);
}
system("PAUSE");
return 0;
}
}
}
Si quelqu´un voit ou est le problème, une petite aide serait la bienvenue ![]()
ci n´est pas à nous de voir où est le problème, mais à toi de nous dire quel est le problème. Là on peut peut-être en trouver la cause.
Mais si tu ne nous dit pas en quoi il consiste c´est peine perdue.
Il y a une erreur à la compilation ? (si oui, laquel et sur quelle ligne), ou à l´exécution ?
J´ais quand même vu un truc : tu défini la variable nombre_de_partie à l´intérieur de la boucle while, ce qui fait qu´elle vaut zéro à chaque nouvelle partie. Ce n´est évidemment pas ce que tu veux. Déclare là au début de ton programme et pas dans la boucle.
Pour poster des codes source et être sur qu´il sont lisible, tu peut utiliser ce site :
http://rafb.net/paste/
c´est ptet le scanf essaye scanf("%d"&,envie_de-jouer
nan nan c pas ca excuse moi
je suis en train de tout relire avant de compiler et deja il manque un &
ici
scanf("%ld",envie_de_jouer);
il faut mettre
scanf("%ld",&envie_de_jouer);
a la fin tu tape
else
{
(nombre_de_partie++);
}
a quoi servent ces parentheses ?
bon ça y est ça marche.
je poste le code (legerement remixé)
http://www.rafb.net/paste/results/k99gdS90.html
en gros j´ai changé les tests qui étaient du genre :
if (Varriable == 1)
en
if (Varriable)
et
if (nombre_de_coups == 1)
{
printf("Eh ben y´en a qu´ont de la chance !! !\ n\n");
}
else if (nombre_de_coups ==2 || nombre_de_coups ==3 || nombre_de_coups ==4 || nombre_de_coups ==5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else if (nombre_de_coups == 6 || nombre_de_coups == 7)
{
printf("Bof pas super...\n\n");
}
en
if (nombre_de_coups == 1)
{
printf("Eh ben y´en a qu´ont de la chance !! !\ n\n");
}
else if (nombre_de_coups < 5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else if (nombre_de_coups < 7)
{
printf("Bof pas super...\n\n");
}
et viré des parentheses qui n´avais pas leur place.
et zut j´en ai oublier un bout:
il me reste 3 warnings
48 C:\Documents and Settings\Alphonse\Bureau\+ou-.cpp:39 [Warning] ´\040´
23 C:\Documents and Settings\Alphonse\Bureau\+ou-.cpp:41 [Warning] ´\040´
41 C:\Documents and Settings\Alphonse\Bureau\+ou-.cpp:48 [Warning] ´\040´
les trois sont des warning ´\040´ => y a t´il un rapport avec le caractère ´(´ ?
bon désolé de poster 15 fois mais cette fois c´est la bonne; j´ai trouvé d´ou viennent les warnings du post précedent.
Aux lignes 39, 41 et 48 tu a mis des trucs du genre printf("blabla \ n");
avec un espace entre \ et n hors "\ " ne correspond a aucun caractere d´echapement.
voila voila je poste le bon code qui marche impec et qui compile impec aussi.
http://www.rafb.net/paste/results/tFIrEL75.html
Merci de m´avoir répondu
guyver
Ton dernier lien est mort aussi...^^
Aute chose : si tu mets :
else if (nombre_de_coups < 5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else if (nombre_de_coups < 7)
{
printf("Bof pas super...\n\n");
}
et que le joueur trouve en 4 coups : 4 est inférieur au "5" du premier else if et aussi inférieur au 7 du second else if... Donc si ça se produit, l´ordi écrit les 2 commentaires à l´écran ! (C´est ce qu´il m´a fait l´autre fois...)
Les parenthèses qui servent à rien, je les ai virées (enfin celles que j´ai vues^^)
Mon code source est ici : http://rafb.net/paste/results/Zx69IM78.html
Et le pb est qu´en fin de partie, je voudrais que l´ordi propose au joueur de refaire une partie ; qu´il arrete le prog si le joueur dit non et qu´il recommence le prog s´il dit oui...
Et c´est ça que j´arrrive pas à faire...
Probleme resolut , avec "goto" (pas recommandé mais tres simple ici), bref j´ai remanier 2,3 truc et ca marche tres bien.
http://rafb.net/paste/results/UQoR6S76.html
je viens du monde du Basic, je n´ais donc pas forcément d´aversion pour le goto, mais en C,je n´en utilise jamais.
On remarqued´ailleur que ton programme peut s´écrire aussi simplement, sans rien changer, sans goto :
au tout début, à la place du "rejouer:", tupeut mettre un "while(1){"
et à la fin, juste avant "system("pause");", tu ferme l´accolade du goto, et bien sur tu vire le "else goto rejouer;".
Il n´y a rien d´autre à changer, car si le joueur veut quitter, il y a le "return 0" qui termine directement le programme.
De plus, je te conseille d´aligner tes accolades ouvrantes et fermantes sur la même colonne : ton code sera bien plus lisible. Là c´est vraiment difficile de voir à quel accolades ouvrantes correspond une accolades fermante et vice-versa.
Ouai javou encore plus simple ,mais ils y a encore pleins de manieres differentes pour coder ca.
Ikki_2504 >>
else if (nombre_de_coups < 5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else if (nombre_de_coups < 7)
{
printf("Bof pas super...\n\n");
}
et que le joueur trouve en 4 coups : 4 est inférieur au "5" du premier else if et aussi inférieur au 7 du second else if... Donc si ça se produit, l´ordi écrit les 2 commentaires à l´écran ! (C´est ce qu´il m´a fait l´autre fois...)
NON !
si il n´y avait eu que des if ça aurai posé probleme mes les else évite ce prob. je vais te le réécrire avec encore plus d´acolades pour que tu vois bien les different blocs d´instruction. meme si sans les tabulation ça rend le code legerement ilisible...
else
{
if (nombre_de_coups < 5 )
{
printf("Pas mal, pas mal du tout meme !\ n\n");
}
else
{
if (nombre_de_coups < 7)
{
printf("Bof pas super...\n\n");
}
} //fin du 2eme else
}//fin du 1er else
Question ´bête´: vous ne pensez pas qu´on devrait plutôt dire ++C..? 8´)
le c++ c´est une sorte de niveau au dessus du C et donc une sorte d´incrémentation. Et quand tu pense incrémentation tu pense plus a machin++ qu´a ++machin donc j´imagine que c++ est plus logique.
Et niveau prononciation c´est mieux...