un coup de pouce pour m'aider a démarré en c

un coup de pouce pour m'aider a démarré en c - C - Programmation

Marsh Posté le 04-11-2005 à 22:31:47    

bonjour,
 
je debute ne C, j'essaye de faire un petit programme qui tire aux sort un chiffre dont l'utilisateur doit le deviner en saissisant sinon message d'erreur.
 
j'ai commencer un truc mais je sais pas si je suis sur la bonne voit
 

Code :
  1. #include <stdio.h>
  2. int nombre;
  3. main()
  4. puts ("taper un chiffre" );
  5. if (nombre)
  6. {
  7. printf ("perdu" )
  8. }

Reply

Marsh Posté le 04-11-2005 à 22:31:47   

Reply

Marsh Posté le 05-11-2005 à 00:14:05    

Houla, t'es sur une voie, mais la bonne je sais pas !
 
Dans un 1er temps, il faut creer un nombre aleatoire. Voir pour cela la fonction random().
Le pb c'est que cette fonction renvoit pas un chiffre entre 1 et 10...
 
Ensuite faut recuperer le chiffre de l'utilisateur, et enfin comparer les 2 :
 
if ( nombre_tiré_au_sort == nombre_entré )
   printf( "gagné :)\n" );
else
   printf( "perdu :(\n" );
 
 


---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
Reply

Marsh Posté le 05-11-2005 à 00:29:15    

merci je vais voir avec ça déjà, il me faut pas forcément un chiffre de 1à 10.
 
de 1 à 10  c'est le nombre d'essai autorisé .

Reply

Marsh Posté le 05-11-2005 à 04:59:31    

Si je puis me permettre, en général, c'est mieux de procéder ainsi :
 

Code :
  1. int main(int argc, char* argv[])
  2. {
  3.     // et de mettre du code ici
  4.     return 0; // (ou une autre valeur si tu veux)
  5. }


 
... à moins que tu aies fait un mauvais copier coller...


Message édité par rnoizet le 05-11-2005 à 05:01:08
Reply

Marsh Posté le 05-11-2005 à 10:50:01    

nlc a écrit :

Houla, t'es sur une voie, mais la bonne je sais pas !


+1, c'est pas la bonne voie.
 

nlc a écrit :


Dans un 1er temps, il faut creer un nombre aleatoire. Voir pour cela la fonction random().


 
C'est pas random() mais rand()
 
 
Sinon, lit les pages d'Emmanuel Delahaye, http://mapage.noos.fr/emdel/  et notament la FAQ http://www.isty-info.uvsq.fr/~rumeau/fclc/ où tu trouveras toutes les réponses à tes questions.
Tu peux aussi explorer la cat c sur ce forum : http://forum.hardware.fr/hardwaref [...] ujet-1.htm

Reply

Marsh Posté le 05-11-2005 à 12:31:53    

nlc a écrit :

Dans un 1er temps, il faut creer un nombre aleatoire. Voir pour cela la fonction random().


Non.  
 

  • Il ne s'agit pas d'aléatoire, mais de pseudo-aléatoire.
  • Pas de 'random()'en C standard.  Les fonctions standards sont  

- srand()
- rand()
 
exemples dans la FAQ de f.c.l.c.
 
http://docs.mandragor.org/files/Pr [...] lc_faq_fr/


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 05-11-2005 à 16:23:27    

En parlant de random, ya moyen d'avoir du vrai aléatoire ? ou c'est toujours du pseudo-aléatoire ?

Reply

Marsh Posté le 05-11-2005 à 16:54:00    

erci pour la doc, mais comment savoir quelle sont les fonctions existante dans ce que j'ai lu personne en parle

Reply

Marsh Posté le 05-11-2005 à 18:54:45    

dodo a écrit :

erci pour la doc, mais comment savoir quelle sont les fonctions existante dans ce que j'ai lu personne en parle


Une référence du C standard (C90)
 
http://www-ccs.ucsd.edu/c/


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 05-11-2005 à 19:06:52    

jud-ass a écrit :

En parlant de random, ya moyen d'avoir du vrai aléatoire ? ou c'est toujours du pseudo-aléatoire ?


sous linux tu peux lire /dev/random qui fournit un nombre aleatoire cree sans passer par un algo deterministe

Code :
  1. #include <stdio.h> // FILE *, fopen(), fread(), fclose()
  2. ...
  3. FILE * fp;
  4. unsigned int random;
  5. if ((fp = fopen("/dev/random","r" )) == NULL) {
  6.   perror("fopen" );
  7.   exit(1);
  8. }
  9. fread(&random, sizeof(random), 1, fp);
  10. printf("random number %u from /dev/random\n", random);
  11. fclose(fp);

Reply

Marsh Posté le 05-11-2005 à 19:06:52   

Reply

Marsh Posté le 05-11-2005 à 19:47:53    

ok j'essaierais comme ca ! merci pour la reponse

Reply

Marsh Posté le 05-11-2005 à 21:03:25    

( note sur /dev/random, si le programme semble bloqué sur le random, bougez la souris ^^ )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 05-11-2005 à 22:30:28    

0x90 a écrit :

( note sur /dev/random, si le programme semble bloqué sur le random, bougez la souris ^^ )


 
bon j'ai essayé de m'attaquer à un truc plus simple pour commencer mais j'ai une erreur  mais je vois pas ou  
 

Code :
  1. #include <stdio.h>
  2. for(a=1;a<1;a++)
  3. {
  4. printf("ça marche pas!!\n" );
  5. }


Reply

Marsh Posté le 05-11-2005 à 22:45:38    

http://images-eu.amazon.com/images/P/2100487345.08.LZZZZZZZ.jpg
Ceci t'aidera plus que de te dire d'ajouter un main...
( et au passage, montre l'erreur qu'il t'affiche )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 05-11-2005 à 22:52:19    

merci pour la référence du livre,
le message qu'il me renvoie est le suivant
 
test.c:4: error: erreur de syntaxe before "for"

Reply

Marsh Posté le 05-11-2005 à 23:03:48    

Pas de main(), a non déclaré, ta boucle for n'effectuera aucune itération...
 
0x90 a raison, il te faut des cours, soit le K&R comme bouquin, soit un tutorial ou quelque chose.

Reply

Marsh Posté le 05-11-2005 à 23:27:06    

Elmoricq a écrit :

Pas de main(), a non déclaré, ta boucle for n'effectuera aucune itération...
 
0x90 a raison, il te faut des cours, soit le K&R comme bouquin, soit un tutorial ou quelque chose.


en faite mon premier jet de mon programme était comme ceci  
 

Code :
  1. #include <stdio.h>
  2. main();
  3. int a;
  4. for(a=1;a<1;a++)
  5. {
  6.     printf("ça marche pas!!\n" );
  7. }

Reply

Marsh Posté le 05-11-2005 à 23:43:10    

[:hide]  
 
Efface-moi vite cette horreur, avant que quelqu'un d'autre ne la voit.
 
Quelques liens pour démarrer, à lire d'urgence :
http://mapage.noos.fr/emdel
http://c.developpez.com/cours/#c
http://c.developpez.com/faq/c


Message édité par Elmoricq le 05-11-2005 à 23:43:39
Reply

Marsh Posté le 06-11-2005 à 00:06:10    

[:le kneu][:le kneu][:le kneu][:le kneu]

Reply

Marsh Posté le 06-11-2005 à 10:28:17    

bonjour,
 
je comprend pas bien a quoi il sert le main,
 
sinon l'ouvrage qui a été conseiller plus haut est il bien car sinon on ma conseiller également ceux la:
 
http://www.eyrolles.com/Informatiq [...] 925ab8855d

Reply

Marsh Posté le 06-11-2005 à 10:48:31    

dodo a écrit :

bonjour,
 
je comprend pas bien a quoi il sert le main,
 
sinon l'ouvrage qui a été conseiller plus haut est il bien car sinon on ma conseiller également ceux la:
 
http://www.eyrolles.com/Informatiq [...] 925ab8855d


il est mauvais il donne de tres mauvais conseil (utilisation de gets et j en passe)

Reply

Marsh Posté le 06-11-2005 à 10:51:06    

0x90 a écrit :

( note sur /dev/random, si le programme semble bloqué sur le random, bougez la souris ^^ )


ou /dev/urandom qui utilise un algo deterministe quand çà bloque :-)

Reply

Marsh Posté le 06-11-2005 à 11:55:33    

dodo a écrit :

sinon l'ouvrage qui a été conseiller plus haut est il bien


 
"Le Langage C" de Kernighan&Ritchie, affectueusement nommé "K&R" ?  
Oui il est bien, c'est la référence en la matière.

Reply

Marsh Posté le 06-11-2005 à 12:10:31    

ok  merci,
 
mais que veux dire 'affectueusement nommé "K&R" '
 

Reply

Marsh Posté le 06-11-2005 à 12:12:56    

dodo a écrit :

je comprend pas bien a quoi il sert le main,


On t'a conseillé de consulter mon site. Tu n'as pas lu ça ?
 
http://mapage.noos.fr/emdel/init_c.htm

Citation :


sinon l'ouvrage qui a été conseiller plus haut est il bien car sinon on ma conseiller également ceux la:
 
http://www.eyrolles.com/Informatiq [...] 925ab8855d


En dehors du fait que l'auteur a pas mal de mauvaises pratiques, c'est un livre d'exercice. Ce qui te manque, c'est les bases. On t'a recommandé le K&R. Sur mon site, je recommande ce tutoriel :
 
http://www-clips.imag.fr/commun/be [...] NSI_C.html
 
Mais comme tu n'as pas l'air de lire les liens qui te sont proposés, je me demande si je ne fais pas tout ça pour rien...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-11-2005 à 12:14:30    

dodo a écrit :

mais que veux dire 'affectueusement nommé "K&R" '


http://www3.uqar.uquebec.ca/rgegr/singe-tete.jpgGné  ?
 
Sérieusement. En relisant cette phrase

Citation :

"Le Langage C" de Kernighan&Ritchie, affectueusement nommé "K&R"


tu ne vois pas ?

Message cité 1 fois
Message édité par Emmanuel Delahaye le 06-11-2005 à 12:16:25

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-11-2005 à 12:22:12    

c'est la premiere fois que je vois qqun ne pas saisir a quoi sert le main

Reply

Marsh Posté le 06-11-2005 à 12:23:27    

Emmanuel Delahaye a écrit :

http://www3.uqar.uquebec.ca/rgegr/singe-tete.jpgGné  ?
 
Sérieusement. En relisant cette phrase

Citation :

"Le Langage C" de Kernighan&Ritchie, affectueusement nommé "K&R"


tu ne vois pas ?


 
attends, fo filer un coup de pouce
 
 

Citation :

"Le Langage C" de Kernighan&Ritchie, affectueusement nommé "K&R"

Reply

Marsh Posté le 06-11-2005 à 12:24:22    

t'as oublié le & , important le &


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 06-11-2005 à 12:25:12    

mais si pourquoi tu dis ça, j'ai bien lu ta page que je trouve très bien, mais bon cela reste encore un peu confus pour passer de la théorie à la pratqiue

Reply

Marsh Posté le 06-11-2005 à 12:28:12    

dodo a écrit :

mais si pourquoi tu dis ça, j'ai bien lu ta page que je trouve très bien, mais bon cela reste encore un peu confus pour passer de la théorie à la pratqiue


Dis moi ce qui est confus dans cette page.  
 
http://mapage.noos.fr/emdel/init_c.htm  
 
Après tout, c'est peut être mal expliqué, je ne demande qu'à améliorer...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-11-2005 à 12:36:03    

non, je ne dit que la page est confus, c'est le faite de passer de la theorie et le mettre en pratique , comme lles différente utilisationde la fonction main

Reply

Marsh Posté le 06-11-2005 à 13:03:12    

dodo a écrit :

non, je ne dit que la page est confus, c'est le faite de passer de la theorie et le mettre en pratique , comme lles différente utilisationde la fonction main


Pardon [:petrus dei]
 
Où t'as vu différentes utilisations à la fonction main [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-11-2005 à 13:19:04    

masklinn a écrit :

Où t'as vu différentes utilisations à la fonction main


Il veux peut être parler des deux formes de main()

int main (void)


et

int main (int argc, char **argv)


 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-11-2005 à 13:20:31    

Emmanuel Delahaye a écrit :

Il veux peut être parler des deux formes de main()

int main (void)


et

int main (int argc, char **argv)



Possible...
 
Mais bon, sur ta page d'intro il n'y a que la première [:petrus75]
 
Et puis je n'appelle pas ça "différentes utilisations de main", le rôle est le même dans les deux cas.


Message édité par masklinn le 06-11-2005 à 13:21:41

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-11-2005 à 18:47:37    

oui c'est bien de ça que je parlais

Reply

Marsh Posté le 06-11-2005 à 18:52:59    

Bon, en gros et en très rapide, histoire de ne pas avoir à retaper tout un cours :
 
main() c'est le point d'entrée d'un programme. C'est la fonction principale, c'est par là que tout commence.
 
On peut définir main() de deux manières différentes :

int main (void) {  
}


 
et :
 

int main (int argc, char **argv) {
}


 
 
La seconde manière permet de récupérer les paramètres passés au programme en ligne de commande.
Un peu comme lorsque tu utilises la commande de copie de fichier "copy" sous DOS :  
copy source destination
Eh bien "source" et "destination" sont deux paramètres.

Reply

Marsh Posté le 06-11-2005 à 21:24:21    

tu as oublié char **env, vil gredin [:el g]

Reply

Marsh Posté le 06-11-2005 à 21:31:46    

chrisbk a écrit :

tu as oublié char **env, vil gredin [:el g]


Pas standard. C'est une extension commune sous Unix.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 06-11-2005 à 21:34:36    

jusque la je pige, entre les    {} de main faut il inserrer le code du programme

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed