IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

un cin qui coince !


Sujet :

C++

  1. #1
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut un cin qui coince !
    Bonjour.
    J'ai un exo sur tableau dynamique récalcitrant à cause d'un cin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include <iostream>
    #include <vector>
    using namespace std;
     
    int main()
    {
     vector<double> notesSur20;  
     for(int i(0); i<notesSur20.size(); ++i)
        {
         cout<<"donne une note sur 20 : ";
         cin >> notesSur20.push_back[0];  // ERROR : invalid types ‘<unresolved overloaded function type>[int]’ for array subscript
        }
     double moyenne(0); 
          for(int i=0; i<notesSur20.size(); ++i)
             {
               moyenne += notesSur20 [i]; 
             }
          moyenne /= notesSur20.size();  
         cout << "La moyenne de toutes ces notes est :  "<< moyenne << endl;
     return 0;
    }

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    push_back est une fonction, donc push_back[20] est une erreur.
    tu ne peux qu'appeler cette fonction (push_back(20)).

    Qui plus est, l'opérateur >> n'est défini que pour cin et une référence modifiable vers certains types, dont double.

    Il faut donc procéder en deux temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double d;
    cin >> d;
    notesSur20.push_back(d);
    En fait, il y a deux sous parties à ta boucle.
    • lire une note, qui pourrait etre une fonction retournant la note
    • stocker la note lue dans une liste.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    hiii, merci ternelll en plus que c'est clair: je pige!!!
    Oui mais... heu, le code fonctionne, pas d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     #include <iostream>
    #include <vector>
    using namespace std;
     
    // moyenneDesValeursEntrees2
    /* Calcul de la moyenne des valeurs contenues dans un tableau (dynamique)
     * tableau dynamique: vector<type>nom(taille); et en haut un include <vector> */
     
    int main()
    {
     vector<double> notesSur20; 
     double note ; // je déclare la variable note qui répondra au cout ci-dessous
     for(int i(0); i<notesSur20.size(); ++i)
        {
         cout<<"donne une note sur 20 : ";
         cin >> note;  // ici l'utilisateur tape sa note
         notesSur20.push_back(note);
        }
     double moyenne(0); 
          for(int i=0; i<notesSur20.size(); ++i)
             {
               moyenne += notesSur20 [i]; 
             }
          moyenne /= notesSur20.size(); 
     cout << "La moyenne de toutes ces notes est :  "<< moyenne << endl;
     return 0;
    }
    donc le job fonctionne mais ne me demande pas "donne une note sur 20 : " et m'envoie:
    "La moyenne de toutes ces notes est : -nan
    ... s'est terminé avec le code 0 "

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Quelle est la taille de ton vecteur au lancement du programme ?

  5. #5
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    heu, je ne comprends pas trop la question;
    la taille du tableau, au départ... nulle je suppose; c'est un tableau vide au départ.

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Et donc ?

    Qu'en déduis-tu en traçant l'exécution de ton code, à la main ?

    Un indice : une valeur NaN (Not-a-Number) résulte le plus souvent d'une division par zéro.

  7. #7
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Hi hi, tu me guides bien:
    quand j'ai vu ta suggestion avant de me coucher, j'étais rouge de honte!!
    ben oui, j'ai divisé ma moyenne par zéro avec ma fichue boucle!!! donc ça a tout arrêté!!!
    Mais ce matin, j'écris à la main et:
    pas du tout!! c'est en dehors de la boucle for que je fais la division:
    moyenne /= notesSur20.size();
    je divise la somme totale des cases par la taille du tableau
    et ici, le code doit voir la taille totale du tableau et donc ne pas dire nan !!!

  8. #8
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Et ta boucle, elle commence comment?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  9. #9
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Ben ma boucle pour moyenne , comme toute boucle d'itération, commence avec la case numéro 0
    moyenne += notesSur20 [0] à qui elle prend la valeur mise dedans et la met dans la variable moyenne
    continue avec la case numéro1 dont elle prend la valeur et l'ajoute dans moyenne à celle de la case 0
    etc.
    et quand elle arrive à la dernière case, [28] par exemple, moyenne a pour valeur la somme de toutes les valeurs,
    la boucle for s'arrête et le programme passe à l'opération suivante:
    moyenne /= notesSur20.size();
    soit il va faire la division de la somme contenue dans moyenne par la taille du tableau : 29 pour mon exemple..
    ça devrait marcher!!! ça ne marche pas, vous avez évidemment raison
    et donc la faille dans mon code, je vois toujours rien
    et même, il me semble que je ne comprends plus rien.

  10. #10
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Ligne 13, quel est le résultat de notesSur20.size() ? Et par extension, quand s'arrête la boucle ?

  11. #11
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    la ligne 13: for(int i(0); i<notesSur20.size(); ++i)
    eh bien la boucle commence avec i=0: la première case du tableau
    et elle se termine... quand l'utilisateur ne cin pas note; soit qu'il ne tape plus à "donne une note sur 20 : "
    non ???
    Tiens, que mon début de boucle vous turlupine, je vais essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     int i(0); // je déclare la variable d'itération
     for(int i=0; i<notesSur20.size(); ++i)
    Ben, toujours "la moyenne de toutes ces notes: -nan
    Bon là, ja vais me coucher... d'un exo simple, je fais un sac de noeuds!!!

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Tu vas trop vite dans ton raisonnement. Il ne faut pas penser en termes « je m'attends à ce que mon programme fasse ceci, cela et j'ai confiance dans ce que j'ai écrit » mais « ce que j'ai écrit ne va justement pas, et je l'analyse finement afin de savoir pourquoi il ne fait pas ce que j'attends ».

    Concentrons-nous sur cette partie de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vector<double> notesSur20; 
    double note ; // je déclare la variable note qui répondra au cout ci-dessous
    for(int i(0); i<notesSur20.size(); ++i)
    {
        cout<<"donne une note sur 20 : ";
        cin >> note;  // ici l'utilisateur tape sa note
        notesSur20.push_back(note);
    }
    Matt_Houston t'a posé une question tout à fait pertinente :
    Quelle est la taille de ton vecteur au lancement du programme ?
    à laquelle tu as parfaitement bien répondu :
    la taille du tableau, au départ... nulle je suppose; c'est un tableau vide au départ.
    et jo_link_noir a à nouveau mis le doigt dessus, mais sans grand succès... Et pourtant c'est tout le problème.

    Donc à nouveau : que vaut notesSur20.size() au départ de ta boucle ? Quelle incidence cela a sur ta boucle ?

    réflexion...

    Toujours pas de déclic ? Quelles sont alors les différentes étapes et instructions de ta boucle ?
    Initialisation, condition, incrémentation, instructions... Décris-nous très précisément chacune de ces étapes.
    Prends pour cela un papier et un crayon, et note pour chacune de ces étapes les états des variables/expressions qui interviennent.

    Si tout va bien tu te rendras vite compte de quelque chose

  13. #13
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 469
    Points : 6 102
    Points
    6 102
    Par défaut
    Autre indice : le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vector<double> notesSur20; 
    double note;
    for(int i(0); i<notesSur20.size(); ++i)
    {
    	cout<<"donne une note sur 20 : ";
    	cin >> note;  // ici l'utilisateur tape sa note
    	notesSur20.push_back(note);
    }
    équivaut au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vector<double> notesSur20; 
    double note;
    {
    	int i(0);
    	while(i<notesSur20.size())
    	{
    		cout<<"donne une note sur 20 : ";
    		cin >> note;  // ici l'utilisateur tape sa note
    		notesSur20.push_back(note);
    		++i;
    	}
    }

  14. #14
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci à vous d'être aussi patient, hi hi...
    et désolé de vous répondre avec retard... (tit problème de santé)
    Voilà, j'ai à peine commencé à écrire sur un papier mon code (la moitié d'une ligne)
    que hop!! la lumière (de vos projecteurs) :
    ben oui, quand la boucle for commence, c'est avec i=0 et la taille du tableau est nulle!! or j'ai la condition: i<notesSur20.size(); soit une impossibilité qui => le nan à la console...
    et donc le dernier des Neurones s'empressa de corriger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i=0; i<(notesSur20.size()+1); ++i)
    et enfin, la console demande la série de notes...
    Donc ce problème réglé...
    Maintenant, je dois trouver moyen de demander qu'une fois la dernière note entrée,
    le job fasse la moyenne....
    bon, je m'y attèle.

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    Non.
    Tu demandes à boucler sur i de 0 à taille du tableau, ton tableau est nul, donc tu boucles pas.
    Si par hasard tu bouclais, tu ajoutes une données au tableau dans la boucle => boucle infinie.
    C'est pas un problème de programmation mais d'algorithmique.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  16. #16
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    En fait, il faut que tu trouves un moyen de trouver quelle est la dernière note.
    Tu as deux solutions:
    demander avant le nombre de notes à lire.
    demander une réponse et voir si c'est une note, la fin de la liste ou encore une fausse manipulation.

    Le premier te permet de rester avec cin, mais ce n'est pas la bonne utilisation.
    Le second demandera que tu passes par un getline(cin, ligne) (ou ligne est une string), puis que tu analyses cette ligne (std::istringstream sera utile à cette fin)
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  17. #17
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Hello Bousk!!
    Diantre, tout le forum vient m'aider!!! hi hi, c'est chouette!!!
    mais bon, vous ne me connaissez pas, vous allez vite en avoir marre de moi...
    Je suppose que Bousk n'a pas vu mon post de 15h27 ???
    En attendant, j'ai fait du progrès que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #include <iostream>
    #include <vector>
    using namespace std;
     
    int main()
    {
     vector<double> notesSur20;  // tableau vide: pas de parenthèses ni de taille
     double note ; 
     int i(0); 
     double moyenne(0); 
     
     // for(int i=0; i<notesSur20.size(); ++i)
        /* au départ de cette boucle, donc avec i=0, déjà un truc curieux: i doit
         * être < à la taille du tableau qui à ce moment est zéro: donc ça ne peut
         pas marcher. Je vais essayer ceci: */
     for (int i=0; i<(notesSur20.size()+1); ++i)
        {
         cout<<"donne une note sur 20 : ";
         cin >> note;  
         notesSur20.push_back(note);
         moyenne += notesSur20 [i];
         moyenne /= notesSur20.size();  
        }
     
     if(note<0 || note>20 )  // j'aimerais bien aussi mettre note !=int pour qui taperait une lettre
        {
         cout <<"Vous avez entré "<< notesSur20.size() <<" notes."<<endl;
         cout << "La moyenne de toutes ces notes est :  "<< moyenne << endl;
           }
     return 0;
    }
    ah ben zut alors!! il entrait les notes et si je mettais une note 23, hop!
    * il me disait: vous avez entré 6 notes: super-chouette!
    puis pas de moyenne, et de plus, si je tapais la lettre a,
    * le code moulinait dans la choucroute quelque secondes...
    * à re-essayer, naouww, comme présenté ci-dessus, il ne me dit même plus combien de notes j'ai entrées

  18. #18
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Non, Bousk répondait bien à ton post de 15h27. Lis bien attentivement les deux messages qui le suivent. Si tu ne comprends pas quelque chose dans les propos des intervenants, demande des compléments sur des points précis.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Pose-toi la bonne question : tu souhaites continuer à boucler tant que quoi ?
    Dès que tu répondras de façon posée à cette question, tu auras ta bonne condition de boucle.

    ternel t'a déjà donné une bonne piste de réflexion.

    En complément, ce sujet de FAQ : Comment vérifier les valeurs saisies avec cin ?

    Sinon concernant la partie suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         notesSur20.push_back(note);
         moyenne += notesSur20 [i];
         moyenne /= notesSur20.size();
    Hors code, reprends papier/crayon et prends les notes {5, 10, 15}.
    Quel résultat obtiens-tu ? Quel résultat devrais-tu obtenir ?

  20. #20
    Membre à l'essai Avatar de moniroge
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Hi!!! ne croyez pas que j'ai laissé tomber!!!
    En fait, j'ai regardé chacune de vos remarques, conseils, recommandations, hi hi
    et ça m'a demandé du temps pour faire évoluer mon code,
    si, il a évolué... il a fonctionné... pour se planter plus loin...
    et puis je découvre GitHub pour ne pas surcharger ici, est-ce que ça marche??? dites-moi, vous le voyez, mon code ???
    parce que GitHub, c'est écrit dans un anglais épouvantable, tiens, je ne sais même pas supprimer, pas vu de delete....
    Ah oui, mon code...
    https://github.com/moniroje/moyenneD...aster/main.cpp
    et aujourd'hui que je suis en Suse: CodeBlocks ne marche pas, et, surprise, QtCreator ne marche plus...
    Donc demain, je retourne sur Debian et CodeBlocks.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. requete supression qui coince
    Par jawed dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 20/03/2008, 23h47
  2. update qui coince
    Par Empty_body dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/03/2008, 17h38
  3. Réponses: 3
    Dernier message: 30/03/2007, 18h03
  4. Multiples Jointures qui coince...
    Par Zeprecheur dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/03/2006, 12h20
  5. Un double Select doublé d un "for each" qui coince
    Par Sparal dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo