Je ne comprends pas mon erreur:

Résolu/Fermé
AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016 - 12 déc. 2016 à 22:04
AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016 - 13 déc. 2016 à 18:21
Bonjour,
Je voudrais savoir quelle est ou quelles sont mes erreur quand le debuger de codeblock me dit "9 : label can only be part of a statement and a declaration is not a statement" et que à cette ligne 9 jusqu'à la 14 il y a :
9 int nombreMystere = 0;
10 int nombreEntre = 0;
11 int max = 0;
12 int min = 0;
13 int coups = 0;

Les 5 variables étaient à la base sur la même ligne, il n'y avait pas la variable "coups", j'ai compilé et ça a fonctionné ensuite j'ai rajouté "coups", compilé et là ce message apparaît donc je cherche une solution et me dit que en les mettant ligne par ligne je serais laquelle pose problème n' Mais le debuger me dit que c'est la ligne 9 qui pose problème alors je l'enlève et recompile mais toujours le message d'erreur alors je ne sais pas quoi faire.
Merci d'avance pour vos solutions.

PS : sachant que ce post est écrit sur mobile et que je n'ai pas d'ordinateur jusqu'à vendredi, il me sera impossible de vous fournir le code avant cette date. Sinon quand je pourrai je le mettrai à disposition.

3 réponses

wasty56 Messages postés 97 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 13 décembre 2016 45
Modifié par wasty56 le 13/12/2016 à 05:11
bonjour
Je suis pas expert en prog C#
cela peux peut etre t'aider (les virgules dans l'association de tes variables :

int nombreMystere = 0, nombreEntre = 0,compteur=0; (*)
  • int coups = 0;




Cdt
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
13 déc. 2016 à 07:06
Bonjour

La question est posée dans le forum C, pas C#.
0
AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016
13 déc. 2016 à 07:35
Bonjour
Oui c'est aussi ce qui m'est venue à l'esprit en premier, je me suis dit qu'il y avait un problème avec les virgules. Mais je ne le voyais pas, alors je les ai mis ligne par ligne pour ne plus avoir de virgules. Et ça ne fonctionnait pas. En j'ai surtout du mal à comprendre pourquoi ça fonctionnait au compilage CV avant que je rajoute la variable coups.

Donc en résumé , wasty56, j'ai déjà testé ta solution, et, comme toi, c'est le premier truc qui m'ai venu à l'esprit.
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931
Modifié par Whismeril le 13/12/2016 à 07:08
Bonjour, le 9
  • c'est codeblock qui te l'affiche dans une zone dédiée aux numéros de lignes
  • c'est toi qui l'as mis
  • tu as copié le code depuis un site avec cette numérotation sans réfléchir

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016
13 déc. 2016 à 15:11
Le 9 c'est le numéro de la ligne de code et le debuger me dit qu'il y a un problème à la ligne 9.
Sinon le code est de moi.
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 931 > AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016
13 déc. 2016 à 16:23
Ok, alors je pense que tu devrais regarder ce que dit Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 13/12/2016 à 16:35
Salut AlphaDragonsFR,

Juste avant la ligne 9, tu as dû définir un label, c'est à dire une étiquette (servant normalement de destination à un goto).

Un truc du genre :

int main(void) {
    /*
     * Selon le standard du C, un label est suivi d'une
     * instruction. Le code suivant cause donc une erreur 
     * "a label can only be part of a statement and a 
     * declaration is not a statement"
     */
toto:
    int nombreMystere = 0;
    int nombreEntre = 0;
    int max = 0;
    int min = 0;
    int coups = 0;

    return 0;
}

donne :

$ gcc -Wall alphadragonfr.c
alphadragonfr.c: In function ‘main’:
alphadragonfr.c:9:2: error: a label can only be part of a statement and a declaration is not a statement
int nombreMystere = 0;
^

non ? (ou en tout cas un identifiant en ligne 8, suivi de la ponctuation ":", donc "deux-points" et non "point-virgule", ce qui est la syntaxe d'un label)

Pour qu'une étiquette soit valablement définie, il faut qu'elle soit suivie d'une instruction, et non d'une déclaration.

L'erreur est signalée à la ligne 9, car la ligne 9 devrait contenir une instruction, et ce n'est pas le cas. L'origine de l'erreur, si mon hypothèse est bonne, serait cependant juste au dessus :-)


Dal
0
AlphaDragonsFR Messages postés 6 Date d'inscription lundi 12 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016
13 déc. 2016 à 18:21
Euh je crois que c'est ca, j'ai bel et bien un label avant mes déclarations de variables, je te remercie.
Et en même temps je me rends compte que si j'avais su plus tôt qu'un label est une destination pour un goto, et non une valeur qu'on attribut à une variable comme je le pensais, je n'aurais pas eu besoin de demander sur un forum.
Bon bref je te remercie encore une dernière fois j'espère, en tout cas pour ce problème là.
Merci ( et oui encore une fois ) et au-revoir.
0