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

Problème dans un programme C++

GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 20:04:16

Bonjour,

Voici mon code

  1. include <iostream>

using namespace std;

int main()
{
string entrer;
cout << "Bienvenue dans 'je devine vote sexe'" << endl;
cout << "Entrez une lettre pour continuer..." << endl;
cin >> entrer;
int x = 0;
int o = 0;
cout << "1.Aimez-vous le foot ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int x = x + 1;
}
else if (entrer == "n")
{
int o = o + 1;
}
cout << "2.Avez-vous plus de copains ou de copines ? o pour copains, n pour copines"<< endl;
cin >> entrer;
if (entrer == "o")
{
int x = x + 1;
}
else if (entrer == "n")
{
int o = o + 1;
}
cout << "3.Etes vous fénéant(e) ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int x = x + 1;
}
else if (entrer == "n")
{
int o = o + 1;
}
cout << "4.dauphin ou Lion ? o = lion/n = dauphin" << endl;
cin >> entrer;
if (entrer == "o")
{
int x = x + 1;
}
else if (entrer == "n")
{
int o = o + 1;
}
cout << "5.Aimez-vous les jeux vidéos ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int x = x + 1;
}
else if (entrer == "n")
{
int o = o + 1;
}
cout << "o = " << o << endl;
if (x < o )
{
cout << "Vous êtes un homme ou un garçon manque" << endl;
}
else if (x > o)
{
cout << "Vous etes une femme ou un homme efemine" << endl;
}
else if (x = o)
{
cout << "Vous êtes une homme ou une femme, indeteminable car egalite" << endl;
}

return 0;
}

(ici el code est collé mais en réalité il y a des espaces)
Alors je vous explique mon problème, le code s'xecute correctement mais normalement pendant le code je demande d'incrémenter la variable o ou x, à la fin je fais un teste grace à un "cout" pour voir combien la variable o a été incrémenté mais même lorsqu'il n'y a que des réponses pour o, le "cout" affiche toujours 0
Je vois vraiment pas mon problème !

Merci !

GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 20:07:47

voici mon nouveau code, masi malgré un éventuel problème, ce que j''ai modifié ne résoud rien !

  1. include <iostream>

using namespace std;

int main()
{
string entrer;
cout << "Bienvenue dans 'je devine vote sexe'" << endl;
cout << "Entrez une lettre pour continuer..." << endl;
cin >> entrer;
int x = 0;
int o = 0;
cout << "1.Aimez-vous le foot ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int o = o + 1;
}
else if (entrer == "n")
{
int x = x + 1;
}
cout << "2.Avez-vous plus de copains ou de copines ? o pour copains, n pour copines"<< endl;
cin >> entrer;
if (entrer == "o")
{
int o = o + 1;
}
else if (entrer == "n")
{
int x = x + 1;
}
cout << "3.Etes vous fénéant(e) ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int o = o + 1;
}
else if (entrer == "n")
{
int x = x + 1;
}
cout << "4.dauphin ou Lion ? o = lion/n = dauphin" << endl;
cin >> entrer;
if (entrer == "o")
{
int o = o + 1;
}
else if (entrer == "n")
{
int x = x + 1;
}
cout << "5.Aimez-vous les jeux vidéos ? o/n" << endl;
cin >> entrer;
if (entrer == "o")
{
int o = o + 1;
}
else if (entrer == "n")
{
int x = x + 1;
}
cout << "o = " << o << endl;
if (x < o )
{
cout << "Vous êtes un homme ou un garçon manque" << endl;
}
else if (x > o)
{
cout << "Vous etes une femme ou un homme efemine" << endl;
}
else if (x = o)
{
cout << "Vous êtes une homme ou une femme, indeteminable car egalite" << endl;
}

return 0;
}

GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 20:08:36

(retirez le 1 au début des iostream, y'a pas dans mon code)

Schiffer
Schiffer
Niveau 10
20 février 2015 à 20:35:35

Utilise la balise < code > pour mieux afficher le code source ou pastebin le

Message édité le 20 février 2015 à 20:36:31 par Schiffer
GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 20:59:31

? j'ai aps bien compris

AZIR2015
AZIR2015
Niveau 7
20 février 2015 à 21:47:00

Utilise pastebin pour bien afficher ton code. Organise le et évite les accolade lors d'un seule condition if-else-else if :) parce que là c'est beaucoup :(

GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 21:55:03

Bha je sais aps j'ai appris qu'il fallait mettre des accolades alors...heu vous allez peut être me prendre pour un noob, mais expliquez moi le pastebin s'il vous plait :)

AZIR2015
AZIR2015
Niveau 7
20 février 2015 à 22:08:34

Pastebin c'est un site pour mettre le code à disposition du public :hap: il permet une coloration syntaxique selon le langage spécifié pour mieux s'y voir dans le code :) http://pastebin.com

GorilleBleu
GorilleBleu
Niveau 10
20 février 2015 à 22:26:27

http://pastebin.com/am07RSHK

et faut que je fasse quoi maintenant ?

bugar
bugar
Niveau 48
21 février 2015 à 00:30:21

Quand tu ecris
int x

cela veux dire que tu déclare une variable , et elle vas se mettre dans ta ram
quand tu ecris:
int x =0;
tu déclare une variable et tu lui associe la valeur 0

A ce stade la ta variable est déclaré, elle existe et a une valeur. Soit une valeur quelconque soit la valeur avec laquelle tu l'aura initialisé.

Le problème dans ton code:

Quand tu rentre dans les if, tu redeclare une variable int x
Du coup en mémoire tu as deux variables int x
La première est à 0 est l'autre a une valeur quelconque (tu peux faire le test via le debugger ou en mettant un cout juste après: int x =x +1;)
donc dans ton if tu déclare une variable temporaire local à la condition qui à une valeur comprise entre -2^31 à 2^31-1 ( si ton pc est en 32 bits) car tu l'initialise pas et auquel tu lui ajoute 1. Ensuite tu sort du if et ta variable n'existe plus.
Puis tu recommence pour les autres questions

A final les valeurs que lis ton programme ce sont les deux int du début, que t'as initialisé à 0 et qui n'ont jamais été modifiés ni utilisé :hap:

Le compilateur ne te dis rien car tu es dans un if
Mais si tu fait une redeclaration hors des if, il va t'insulter.

GorilleBleu
GorilleBleu
Niveau 10
21 février 2015 à 00:35:07

Ha oui effectivement !!
C'est tout stupide mais t'a raison j'ai supprimé les types dans les structures de contrôles et tout fonctionne a merveille !

bugar
bugar
Niveau 48
21 février 2015 à 00:48:32

Petit rappel:

Dans une même fonction du déclare une variable qu'une seule fois après tu peux l'utilisé tout le long

Les variables que tu déclare vivent le temps de la fonction et ont une porté, aux max celle de la fonction, ou comme ici entre les accolade du if {}, quand tu sort de la fonction les variables sont "suppr" . Ce sont des variables local
( néanmoins tu verra qu' il est possible de passé une variable de fonction en fonction ou d'avoir des variables static utilisable par tout).

int c'est le type de donnée de ta variable. Ca permet à l'ordinateur ( et le programmeur ) de savoir quelle taille mémoire utilisé, comment interprété la variable, quelles sont les valeur max/min, quelles informations tu vas mettre dedans ( chiffre, charactere, chiffre a virgule,... )

x c'est le nom, c’est son identifiant pour le reste de la fonction et il doit etre unique dans une même fonction.

Message édité le 21 février 2015 à 00:49:17 par bugar
AZIR2015
AZIR2015
Niveau 7
21 février 2015 à 01:20:56

effectivement comme dit mon vdd, tu redéclares la variables, ce qui voudra dire que ce n'est pas la même :hap:
sinon un code plus lisible, raccourci : http://pastebin.com/EsPgfKbR

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