Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  new bie en C++ pourquoi ma fonction merde??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

new bie en C++ pourquoi ma fonction merde??

n°356887
grosmethos
Posté le 09-04-2003 à 17:25:52  profilanswer
 

voici le code!!
 
char* afficheResultat(int val)
{
 
if (val==7||val==11)
message="GAGNE";
if (val==2||val==3||val==12)
message="PERDU";
if (val==4||val==5)
LanceDes();
return message;
}
avec char message[6]=""; au dessus du main!!!

mood
Publicité
Posté le 09-04-2003 à 17:25:52  profilanswer
 

n°356891
nico168
Posté le 09-04-2003 à 17:28:25  profilanswer
 

message="GAGNE";
ca ne fait pas se que tu veux.
 
utilise plutot
strcpy(message,"GAGNE" );
 
ton code gagnerais en lisibilité si tu utilisait switch-case:

Code :
  1. switch(val)
  2. {
  3. case 7,11:
  4. strcpy(message,"GAGNE" );
  5. break;
  6. case 2,3,12:
  7. strcpy(message,"PERDU" );
  8. break;
  9. case 4,5:
  10. LanceDes();
  11. break;
  12. }



Message édité par nico168 le 09-04-2003 à 17:34:06
n°356892
grosmethos
Posté le 09-04-2003 à 17:30:54  profilanswer
 

ok alors je dois toujours faire copier lorsque je veux attribuer une chaine dans un tablô??

n°356896
nico168
Posté le 09-04-2003 à 17:34:43  profilanswer
 

grosmethos a écrit :

ok alors je dois toujours faire copier lorsque je veux attribuer une chaine dans un tablô??


oui

n°356897
ToxicAveng​er
Posté le 09-04-2003 à 17:34:54  profilanswer
 

grosmethos a écrit :

voici le code!!
 
char* afficheResultat(int val)
{
 
if (val==7||val==11)
message="GAGNE";
if (val==2||val==3||val==12)
message="PERDU";
if (val==4||val==5)
LanceDes();
return message;
}
avec char message[6]=""; au dessus du main!!!


 
 [:toxicavenger] spa bien les variables globales, tu ne peux pas savoir si ca sera pas modifiées en cours de routes par une fonction X ou Y...

n°356910
grosmethos
Posté le 09-04-2003 à 17:40:19  profilanswer
 

ok pour les varaibles je sais c'est pas propres..mais je vais travailler ça...
Par contre le case avec des virgules marchent avec VB pas en C++ :)

n°356917
nico168
Posté le 09-04-2003 à 17:44:10  profilanswer
 

grosmethos a écrit :

ok pour les varaibles je sais c'est pas propres..mais je vais travailler ça...
Par contre le case avec des virgules marchent avec VB pas en C++ :)  


 
oups... :pt1cable:  
donc faudrait qqchose comme ca
 

Code :
  1. switch(val)
  2. {
  3. case 7:
  4. case 11:
  5. strcpy(message,"GAGNE" );
  6. break;
  7. case 2:
  8. case 3:
  9. case 12:
  10. strcpy(message,"PERDU" );
  11. break;
  12. case 4:
  13. case 5:
  14. LanceDes(); 
  15. break;
  16. }

 

n°356920
grosmethos
Posté le 09-04-2003 à 17:44:54  profilanswer
 

j'vois que vous etes dans de bonne dispo alors j'en profite...
J'ai fait une petite modif..mais plante encore:

Code :
  1. int LanceDes()
  2. {
  3. int resultat1,resultat2;
  4. srand(time(0));
  5. resultat1=(1+rand()%6);
  6. resultat2=(1+rand()%6);
  7. return resultat1+resultat2;
  8. }
  9. char* afficheResultat(int val)
  10. {
  11. if (val==7||val==11)
  12. strcpy(message,"GAGNE" );
  13. if (val==2||val==3||val==12)
  14. strcpy(message,"PERDU" );
  15. if (val==4||val==5||val==6||val==8||val==9||val==10)
  16. {afficheResultat(LanceDes());}

n°356921
grosmethos
Posté le 09-04-2003 à 17:45:21  profilanswer
 

manque le return message; à la fin

n°356936
nico168
Posté le 09-04-2003 à 17:59:16  profilanswer
 

tu entends quoi par "plante" ?
t'as pas de debuggeur ?
c'est pas un probleme de priorité ?
 
est ce que  
if (truc==1||truc==2||truc==3)
reagis pareil que
if ( (truc==1) || (truc==2) || (truc==3) )  
?

mood
Publicité
Posté le 09-04-2003 à 17:59:16  profilanswer
 

n°356945
grosmethos
Posté le 09-04-2003 à 18:05:42  profilanswer
 

à la compilation il me dit mais à l'execution j'ai un message d'erreur qui si je dit annuler me sort des 100ene de ligne..j'imagine en code machine...
 
Je suis en train de remarquer que si je rappel lanceDes et bien au moment de l'addition il concatenne...
 

Code :
  1. if (val==4||val==5||val==6||val==8||val==9||val==10)
  2. {int Nvxtirage=LanceDes();
  3. // afficheResultat(Nvxtirage);
  4. cout<<"//"<<Nvxtirage;
  5. }


LanceDes() me retourne 99

n°357029
ToxicAveng​er
Posté le 09-04-2003 à 19:35:03  profilanswer
 

grosmethos a écrit :

à la compilation il me dit mais à l'execution j'ai un message d'erreur qui si je dit annuler me sort des 100ene de ligne..j'imagine en code machine...
 
Je suis en train de remarquer que si je rappel lanceDes et bien au moment de l'addition il concatenne...
 

Code :
  1. if (val==4||val==5||val==6||val==8||val==9||val==10)
  2. {int Nvxtirage=LanceDes();
  3. // afficheResultat(Nvxtirage);
  4. cout<<"//"<<Nvxtirage;
  5. }


LanceDes() me retourne 99  


 
ca irait pas plus vite de faire:
 

Code :
  1. if (val >= 4 && val != 7 && val <= 10)


Mouais, non en fait... :sol:

n°357038
Tetragramm​aton IHVH
dieu unique =&gt; pensée unique
Posté le 09-04-2003 à 19:40:47  profilanswer
 

ToxicAvenger a écrit :


 
ca irait pas plus vite de faire:
 

Code :
  1. if (val >= 4 && val != 7 && val <= 10)


Mouais, non en fait... :sol:  


 
et ça marchera mieux si tu fais :

Code :
  1. if ((val >= 4) && (val != 7) && (val <= 10))


 
le '&&' est prioritaire sur les comparaisons, non ?


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°357040
ToxicAveng​er
Posté le 09-04-2003 à 19:43:20  profilanswer
 

Tetragrammaton IHVH a écrit :


 
et ça marchera mieux si tu fais :

Code :
  1. if ((val >= 4) && (val != 7) && (val <= 10))


 
le '&&' est prioritaire sur les comparaisons, non ?  


 
spossible...  :ange:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  new bie en C++ pourquoi ma fonction merde??

 

Sujets relatifs
[C, C++] Timer et fonction membre d'une classeFonction time en C ?
pas de html avec la fonction str_replace[c++] problème avec ifstream et fonction getline
Encore une fonction sur les Strings....[Qt] quelle fonction pour intecepter la fermeture de la fenêtre d'app
je Cherche la fonction qui surcharge un INT en un VARCHAR !!!!Probleme avec la fonction scrollTo
Problème avec un appel de fonctionfonction fwrite
Plus de sujets relatifs à : new bie en C++ pourquoi ma fonction merde??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR