ce que je te demande EST de la pratique.
J’attend.
Bon, d’accoreeeeeeeuh !
1/
bonjouur
100200
2/
En chantier…
3/
En chantier…
1/non, mais pas loin.
Ah ! On retourne p3 à main avec le return de la fonction affichage.
Donc :
bonjouur
100200
300
C’est fou ça ! (oui je flood, je sais)
[quote=“wavesound”]Ah ! On retourne p3 à main avec le return de la fonction affichage.
Donc :
bonjouur
100200
300
[/quote]et de 1;)
[quote=“wavesound”]Arf.
http://www.siteduzero.com/tuto-3-2842-1-les-fonctions.html#ss_part_1
Première fois que je suis un peu perdu dans le cous du site du zéro. [/quote]Pourtant c’est pas si complexe que ça prend ton temps je suis sur que tu y arriveras
Je t’ai mis quelques commentaires à toi d’en tenir compte et de régler les problèmes [code]/* PlusMinus 1.0.0 (08/07/07)
(par Nikita Lemarchand d’après une idée de M@teo21)
GNU General Public License 2.0 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* Ashgenesis : Fonction de type long qui ne renvois rien du tout = comportement indefinis
http://mapage.noos.fr/emdel/init_c.htm#UB
risque d’erreur possible étant donné que tu ne renvois rien ce n’est que de l’affichage
ta fonction doit etre du type void
Les commentaires doivent se trouver entre slash et etoile et au dessus de la fonction ou de la
commande. http://mapage.noos.fr/emdel/codage.htm#commentaires
Voir aussi l’organisation d’un code source
http://mapage.noos.fr/emdel/codage_sep.htm
/
long jeu(long MAX, long MIN)
{
long nombreMystere, nombreEntre;
srand(time(NULL)); // On génère un nombre aléatoire
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; // fonctions rand et srand
do // Boucle do… while qui ne s’arrêtera que lorsque le bon nombre sera trouvé
{
printf("Quel nombre pensez-vous que j’ai choisi ? ");
/ Ashgenesis : préferer l’utilisation de fgetc à scanf
http://mapage.noos.fr/emdel/notes.htm#fgetc */
scanf("%ld", &nombreEntre);
if (nombreMystere > nombreEntre)
{
printf(“C’est supérieur.\n\n”);
}
else if (nombreMystere < nombreEntre)
{
printf(“C’est inférieur.\n\n”);
}
else
{
printf(“Bien joué, c’est exact !\n\n”);
}
}
while (nombreEntre != nombreMystere);
}
int main(void)
{
long MAX = 0, MIN = 0;
char rejouer = 'o';
printf("\n"); // Un petit menu pour présenter
/* Eviter de dépasser les 80 caractères sur la meme ligne */
printf("--------------------------------------------------\nPlusMinus 1.0.0 (06/07/07)\n(par Nikita Lemarchand d'après une idée de M@teo21)\n\nGNU General Public License 2.0\n--------------------------------------------------\n\n");
do // Boucle do... while pour choisir le MAX et le MIN et pour rejouer ou non
{
/*Ashgenesis : idem que dans la fonction jeu utiliser fgetc à la place de scanf */
printf("Choisissez le plus grand nombre possible : ");
scanf("%ld", &MAX); // Renseigne le MAX
printf("Choisissez le plus petit nombre possible : ");
scanf("%ld", &MIN); // Renseigne le MIN
printf("\n");
jeu(MAX, MIN); // Appelle la fonction jeu
/* Ici le choix est laisser de continuer ou non mais seul le choix [o] est traité pour la gestion d'un tel menu voir getchar()*/
printf("Rejouer une partie [o/n] ? ");
scanf("%c", &rejouer);
scanf("%c", &rejouer);
printf("\n");
} while (rejouer == 'o');
return 0;
}
[/code]
Merci, je vais voir ça !
Et fgets ou puts à la place de printf ?
Et fgets ou puts à la place de printf ?
Ashgenesis, evite de le lancer sur des détails
wavesound@Whale:~$ gcc /home/wavesound/Données/Programmes/PlusMinus\ 1.0.0/PlusMinus\ 1.0.0.c -o /home/wavesound/Données/Programmes/PlusMinus\ 1.0.0/PlusMinus\ 1.0.0
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c: In function ‘jeu’:
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:21: warning: passing argument 1 of ‘fgetc’ from incompatible pointer type
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:21: error: too many arguments to function ‘fgetc’
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c: In function ‘main’:
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:56: warning: passing argument 1 of ‘fgetc’ from incompatible pointer type
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:56: error: too many arguments to function ‘fgetc’
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:59: warning: passing argument 1 of ‘fgetc’ from incompatible pointer type
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:59: error: too many arguments to function ‘fgetc’
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:64: warning: passing argument 1 of ‘fgetc’ from incompatible pointer type
/home/wavesound/Données/Programmes/PlusMinus 1.0.0/PlusMinus 1.0.0.c:64: error: too many arguments to function ‘fgetc’
wavesound@Whale:~$
@Matt - Ben c’est des petits détails qui peuvent générer des problèmes de comportement au niveau programme et apres on se demande pourquoi il y a un segfault . Quitte à l’aider dans son apprentissage en C autant le guider dans la programmation dans le respect des normes
@wavesound - Ben c’est pas si simple que ça de remplacer le scanf par un fgetc pour plus d’infos n’hésite pas à consulter le man linux-france.org/article/man … ets-3.html
Pour puts à la place de printf, je ne pense pas vue l’utilisation que tu en fait je pense le printf le plus adapté.
Sinon, finit d’abord les travaux que MattOTop t’a confié avant de continuer à coder ton programme tu verras que ça t’aideras par la suite
Merci, mais je ne trouve pas d’explication à mon problème.
Sinon, je vais suivre tes conseils et ceux de matt.
quote="wavesound"
Merci, mais je ne trouve pas d’explication à mon problème. [/quote]Ca s’expliquera de lui même quand tu auras compris le fonctionnement des fonctions avec mes exercices.[quote=“wavesound”]
Sinon, je vais suivre tes conseils et ceux de matt. [/quote]Commences alors à utiliser make, comme je t’ai dit au départ au lieu de faire tes gcc -o.
J’ai des problèmes avec make.
J’obiens ça :
[...]
make: Rien à faire pour « /<chemin du fichier .c>».
c’est quoi le chemin de ton fichier.c ? quel est son nom ?
bon.
déplaces toi dans le rep ou tu travailles, c’est plus simple:
cd /home/wavesound/Données/Programmes/PlusMinus\ 1.0.0/
puis:
mv PlusMinus\ 1.0.0.c PlusMinus1.0.0.c
(pour arrèter de te casser les pieds avec un espace dans le nom)
et là:
make PlusMinus1.0.0
ce qui va te redonner la même erreur que tu pourras corriger quand tu auras compris un peu les fonctions.
wavesound@Whale:~/Données/Programmes/PlusMinus 1.0.0$ make PlusMinus1.0.0.c
make: Rien à faire pour « PlusMinus1.0.0.c ».
wavesound@Whale:~/Données/Programmes/PlusMinus 1.0.0$
:smt031
ai je dit make PlusMinus1.0.0.c ?
non, j’ai dit make PlusMinus1.0.0
Ah !
C’est bon, merci !