j'ai pu faire la 2ème option où le programme genere seul le nombre aleatoire. j'ai voulu tester la 1ère option et c'est la que je suis bloqué on me met erreur de compilation
(et encore j'ai fait une exception pour le else quand il contient un if).
Autre recommandation : quand on dit qu'il y a une erreur de compilation au secours aidez-moi, ça serait mignon tout plein de dire
quel message
à quelle ligne
A la limite, avant de poster, tu peux même le lire et essayer de comprendre ce qu'il dit, ça t'évitera peut être de poster et d'attendre des réponses qui racontent peut être n'importe quoi.
Les printf avant le elseif et le else ne devraient pas avoir de ; car cela fausse les if.
Encore surprenant que tu n'aies pas d'erreur de compilation.
En passant, tu devrais pouvoir mettre des accents dans les chaînes de tes printf, comme "entré".
michelbillaud l'a déjà souligné : c'est effectivement faux de dire ça. ça ne fausse rien du tout, on a ici une instruction constituée d'un appel de fonction, et la norme du C autorise de ne pas avoir d'accolade (auquel cas seul la prochaine instruction est "touchée" par le if). Par contre, si l'auteur avait écrit ceci :
if (cond)
instr1;
instr2;
else if (cond2)
instr3;
else
instr4
Avec deux instructions après le if : effectivement, dans ce cas là, ça n'aurait pas compilé, puis ce que le "bloc" du if se serait terminé à l'instruction 1, et donc le else if n'aurait pas de bloc sur lequel s'appliquer.
Il est effectivement recommendé de mettre des accolades pour éviter ce genre de situation. C'est une question de style. Si on n'a pas envie d'écrire des lignes inutiles on peut organiser ça comme ça
if (cond1){
instr1;
} else if (cond2) {
instr2;
} else {
instr3;
}
Les accents ne sont pas forcément pris en charge, ça dépend de l'OS. Si t'es sous Windows les accents ne s'afficheront pas dans tes print (t'auras des caractères bizarres à la place). Si t'es sous Linux par contre, aucun souci.
- Edité par potterman28wxcv 28 mai 2019 à 11:18:29
Ce n'est pas du style pour faire artistique, c'est parce que ça fait gagner du temps dans la mise au point et la maintenance des programmes.
Le but, on est bien d'accord, est de travailler le moins possible ? Ne pas taper les accolades fait gagner quelques dixièmes de secondes, et n'est absolument pas rentable par rapport au temps que ça risque de faire perdre, si on se plante ne serait-ce qu'une fois sur cent.
Personnellement je trouve ça un peu lourdingue. C'est pas juste par rapport au "temps d'écriture" du code, mais j'écris plus naturellement du code sans accolade. Et je ne me suis jamais fait avoir par ça. Mais je comprends tout à fait pourquoi certaines personnes choisissent de toujours les mettre.
Dans le cas du coding standards de GNU, ils ne le font que quand c'est un if imbriqué dans un autre if (en mettant des accolades au if englobant). C'est ce que je fais aussi d'ailleurs.
Ceci dit si je travaille avec des gens qui mettent les accolades systématiques, en général je suis leur style et fais de même.
Perso, je suis un adepte des non-accolade (à condition que le code soit bien présenté) mais je n'irai pas jusqu'à être fan de l'opérateur ',' pour les éviter:
#include <stdio.h>
int main(void){
int i = 0;
if (i == 3)
printf("Premier statement\n"),
printf("Deuxième statement\n");
else
printf("C'est l'idée du siècle\n");
}
D'abord, je n'avais pas vu qu'il avait une erreur de compilation.
Quelque chose du genre: if(condition) printf(...); else ...
Est évidemment une erreur.
Moi aussi, je suis parfois paresseux! Si j'ai peu de code, je préfère éviter les {_}.
Quand je code avec les {_}, je tape l'} tout de suite après l´'{ et je recule devant l'}, cela m'évite de l'oublier car il n'y a rien de pire que de chercher où j'ai oublié mon } surtout si j'ai plusieurs niveaux imbriqués.
Je fais de même avec les [_], (_), "_", et '_'.
Je sais que dans les chaînes ou les caractères, il ne faut pas oublier les \.
genre: printf("J'affiche un \" ici\n"); apostrophe = '\'';
Cela ne règle pas tout mais J'en évite beaucoup.
Pour ce qui est des lettres accentuées, c'est vrai que cela ne fonctionne pas partout.
Cependant, certains hésitent à les utiliser même quand c'est possible.
Dans le cas du "entre" versus "entré", il pourrait y avoir confusion "entre" les deux termes.
Cependant, cela pourrait poser un problème de portabilité.
Le Tout est souvent plus grand que la somme de ses parties.
j'ai pu faire la 2ème option où le programme genere seul le nombre aleatoire. j'ai voulu tester la 1ère option et c'est la que je suis bloqué on me met erreur de compilation
Moi je veux bien mais pourquoi il dit avoir une erreur de compilation.
Il induit "le grand public" en erreur ...
Le Tout est souvent plus grand que la somme de ses parties.
Pourquoi il a dit qu'il en avait ? J'en sais rien. Peut-être que l'auteur a corrigé son code entre le moment où il a posté qu'il avait une erreur de compilation, et le moment où il a posté son code ? Ou alors peut-être qu'il compilait une ancienne version de son code parce qu'il n'avait pas sauvegardé le code avec son éditeur de texte ? Y a plein d'explications possibles
Sur ce forum ce sont des débutants qui postent les sujets, en général entre ce que l'auteur du post dit et ce qu'il se passe réellement, il peut y avoir une grosse marge.
- Edité par potterman28wxcv 29 mai 2019 à 16:50:19
code du jeu plus ou moins
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.
Le Tout est souvent plus grand que la somme de ses parties.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.