Problemes rand() [résolu] [C] - C - Programmation
Marsh Posté le 05-12-2005 à 22:51:06
T'es sûr que t'es ingénieur informaticien ?
Achète un vrai bouquin sur le C, comme le K&R ou trouve un cours digne de ce nom.
Pour ce qui est de ton code : les fonctions auxquelles tu fais appel ne sont pas standards et je doute que Dev-C++ aille les chercher dans stdio.h et stdlib.h. Regarde les pages de manuel de rand, srand, getchar...
Ah et puis on dit "bibliothèque" (traduction de "library" en anglais) et non "librairie".
Marsh Posté le 05-12-2005 à 22:53:45
Ca ressemble à des fonctions de la lib Borland, ça.
Regarde si tu n'as pas un conio.h (ou ressemblant) qui traine dans tes répertoires.
Quant aux *.pdf que tu lis, abandonne-les s'ils te renvoient à ces fonctions. Utiliser des bibliothèques tierces c'est un excellent réflexe (quand on en a besoin), mais avant ça il faut savoir utiliser les fonctions standards.
Effectivement, le K&R (le vrai titre, c'est "Le Langage C", de Kernighan & Ritchie) est une bible.
Marsh Posté le 05-12-2005 à 22:55:20
magiclazy a écrit : salut je suis TRES debutant je suis en train de suivre des (*.pdf) et j'ai quelques probleme certaine fonction ne marche pas alors que |
Pour ton code, met le d'abord entre les balise code... c'est plus lisible...
Sinon, qu'est ce que tu as comme message d'erreur?
Je pense que ça viens du random(), qui doit etre definit dans "math.h", et c'est plutot un rand() si je me rappel bien.
Et pour le clrscr() je crois qu'il faut include "conio.h"...
Marsh Posté le 05-12-2005 à 22:58:18
Twinsens a écrit : Je pense que ça viens du random(), qui doit etre definit dans "math.h", et c'est plutot un rand() si je me rappel bien. |
stdlib.h
random() est une fonction standard POSIX.2, mais bon les vraies fonctions standards sont srand() (pour l'initialisation) et rand().
Marsh Posté le 06-12-2005 à 22:26:38
salut merci pour toutes ces reponses juste une remarque je trouve que souvent vous dites que les cours des uns et des autres sont mauvais mais alors proposé (svp) un vraie alternative au K&R qui soit gratuite et complète
merci
ps:vous etes sous linux non ?
Marsh Posté le 06-12-2005 à 22:31:09
les cours que jai pris sont ceux-ci ....
http://c.developpez.com/cours/
Marsh Posté le 06-12-2005 à 23:03:31
magiclazy a écrit : |
je vois pas en quoi le K&R est à remplacer
et petiot faudra apprendre que rien n'es gratuit dans ce bas monde
Marsh Posté le 06-12-2005 à 23:55:38
un K&R ça s'appelle un investissement
Marsh Posté le 07-12-2005 à 09:20:51
magiclazy a écrit : sproposé (svp) un vraie alternative au K&R qui soit gratuite et complète |
http://www-clips.imag.fr/commun/be [...] NSI_C.html
Marsh Posté le 07-12-2005 à 12:21:26
désolé mais je trouve et c'est mon opinon (même si je respecte la votre) que pour un utilisateur de linux dire "je vois pas en quoi le K&R est à remplacer" c'est assez contradictoire
alors je vais dire un truc :"en quoi windows est à remplacer ?"
(c vrai je pense quil est a remplacer quand meme)
mais c pareil il ne convient pas forcement a des certaines attente -le (K&R) par exemple ne conrespont pas à mon attente qui est de trouver des cours correctes pour une envie qui n'est pas à la hauteur d'un investissment comme le K&R
voilà tout ceci dit je respecte votre opinion mais un dernier mot rester ouvert vous n'êtes pas des linuxion pour rien non ?
Marsh Posté le 07-12-2005 à 12:25:38
magiclazy a écrit : voilà tout ceci dit je respecte votre opinion mais un dernier mot rester ouvert vous n'êtes pas des linuxion pour rien non ? |
Gné ? J'utilise indifférremment Linux ou Windows. C'est grave ?
Marsh Posté le 07-12-2005 à 12:28:26
La connaissance ca se paye
Marsh Posté le 07-12-2005 à 12:28:40
magiclazy a écrit : désolé mais je trouve et c'est mon opinon (même si je respecte la votre) que pour un utilisateur de linux dire "je vois pas en quoi le K&R est à remplacer" c'est assez contradictoire |
Y a-t-il des considérations, des enseignements et des techniques fondamentalement incorrects dans le K&R?
Marsh Posté le 07-12-2005 à 12:29:19
masklinn a écrit : Y a-t-il des considérations, des enseignements et des techniques fondamentalement incorrects dans le K&R? [:bistou tt] |
ouais, 30 [:spamafote]
[edit]
En fait jviens de penser, essaye un C Précis&Concis ( 8.55 ), c'est petit, un peu dense, si t'as besoin qu'on te tienne la main tu va pas aimer, mais c'est quasiment aussi fiable qu'un K&R pour les bases et ca détaille pas mal les libs. ( par contre y'a pas tout de ce qu'on trouve dans les annexes du K&R , perso l'un complète l'autre )
Marsh Posté le 07-12-2005 à 12:33:42
http://www.open-std.org/jtc1/sc22/ [...] /n1124.pdf Tient ca c'est gratuit
Marsh Posté le 07-12-2005 à 12:34:46
Il brise les burne des gens et crache sur le K&R pour 30? C'est une blague
Marsh Posté le 07-12-2005 à 12:36:31
masklinn a écrit : Il brise les burne des gens et crache sur le K&R pour 30? C'est une blague |
Bha s'il a pas assez d'argent de poche spa sa faute hein ...
Marsh Posté le 07-12-2005 à 12:37:40
oula oula je cherche pas sa du tout c'etait juste un ptit debat mais bon je crois la c finit parceque sa derape trop en tt cas derniere chose j'ai 15 ans et 30€ c assez relatif comme somme ....
en tout cas merci pour ces reponses.. @+
Marsh Posté le 07-12-2005 à 12:38:54
magiclazy a écrit : oula oula je cherche pas sa du tout c'etait juste un ptit debat mais bon je crois la c finit parceque sa derape trop en tt cas derniere chose j'ai 15 ans et 30 c assez relatif comme somme .... |
Essaye le Précis&Concis , 9 spa dramatique quand même ...
Marsh Posté le 07-12-2005 à 18:53:21
oupss tout sa ma fait oublier que je n'arrive pas trouver un moyen pour que cela marche (le code) jai tout le temps une erreur ou sinon je met rand () et les () vides et sa me genere un nombre de chiffre (4ou5) et je ne sais comment controler sa .. merci d'avance ..
Marsh Posté le 07-12-2005 à 18:58:06
Shame on me !!!
j'avais pas precisé RAND_MAX ........
rrrrolll
Marsh Posté le 07-12-2005 à 21:53:50
je n'arrive pas à obtenir une sequence de nombre differente a chaque demarrage du programme pourtant j'initialise bien avec srand(time(NULL));
je comprends pas ...
un ptit coup de main ??
merci d'avance
Marsh Posté le 07-12-2005 à 22:05:57
je suis arrivé a quelque chose de correcte avec sa :
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int main()
{
srand(time(NULL));
int nb;
nb=rand();
do
{
printf("%d",nb);
}
while(nb<50);
getch ();
}
dsl pour la lisibilité mais c vite fait ..
Marsh Posté le 07-12-2005 à 22:08:23
utilise la balise [cpp] ou [fixed] du forum stp.
Marsh Posté le 07-12-2005 à 22:23:18
ReplyMarsh Posté le 07-12-2005 à 22:24:08
O et comment on l'arrête loli ?
Marsh Posté le 07-12-2005 à 22:24:51
Avec une condition d'arrêt appropriée.
Marsh Posté le 07-12-2005 à 22:29:37
merki, monsieur
"mode boulet activée"
"je leve la main"
Msieur jy arrive pas voici mon code et sa foire heu sa marche pô ,PK ??"
"mode MAXI boulet desactivée"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int main()
{
srand(time(NULL));
int tirage;
tirage = rand();
while ((tirage<10)||(tirage>0));
{
printf("%d alelouïa",tirage);
}
getch();
return (0);
}
Tout sa pour afficher un nombre entre 0 et 10 aleatoire ...
Marsh Posté le 07-12-2005 à 22:35:57
magiclazy a écrit : je suis arrivé a quelque chose de correcte avec sa : |
Tu pourrais faire un effort de présentation, on est pas des chiens...
|
Marsh Posté le 07-12-2005 à 22:38:37
rien à dire tu as raison seulement 2 choses la premiere ben sa marche pas ..lol enfin si mais c'est pas entre 0 et 10 et la deuxieme désolé ta raison
Marsh Posté le 07-12-2005 à 22:38:54
magiclazy a écrit : merki, monsieur |
A quoi ca sert de faire une boucle si tu ne mets pas rand() dedans ?
Marsh Posté le 07-12-2005 à 22:39:51
et aussi je comprends pas ce que vient faire le i même si j'ai l'impression qu'il est très important lol
Marsh Posté le 07-12-2005 à 22:43:38
HAHAH oki j'ai compris le i est la pour que au bout de 10 resultat sa s'arrete ok j'ai compris (humm!!)
mais par contre sa serait plutot pour que le nombre aleatoire sois entre 0 et 10
Marsh Posté le 07-12-2005 à 22:44:26
magiclazy a écrit : rien à dire tu as raison seulement 2 choses la premiere ben sa marche pas ..lol enfin si mais c'est pas entre 0 et 10 et la deuxieme désolé ta raison |
Je n'ai fais que mettre en forme ton code et le faire tourner et s'arréter proprement. Pour un tirage entre 0 et 10. La méthode naive c'est le modulo.
un 'x modulo 11' retourne une valeur comprise entre 0 et 10.
Mais il y a des problèmes de répartitions inégale des valeurs... On préfère une solution plus mathématique :
http://docs.mandragor.org/files/Pr [...] .html#q_10
Marsh Posté le 07-12-2005 à 22:45:56
magiclazy a écrit : HAHAH oki j'ai compris le i est la pour que au bout de 10 resultat sa s'arrete ok j'ai compris (humm!!) |
Ben voilà, il suffit de se secouer un peu le neurone...
Marsh Posté le 07-12-2005 à 22:47:24
j'aime bien "le neurone"....merci lol
et pour nb < 10 ??
Marsh Posté le 07-12-2005 à 22:55:25
magiclazy a écrit : j'aime bien "le neurone"....merci lol |
soit cohérent....
Citation : Tout sa pour afficher un nombre entre 0 et 10 aleatoire |
Citation : nb < 10 |
Alors, c'est 0 à 10 ou 0 à 9 ?
Marsh Posté le 05-12-2005 à 22:39:39
salut je suis TRES debutant je suis en train de suivre des (*.pdf) et j'ai quelques probleme certaine fonction ne marche pas alors que
que la librairie est incluse voici un exemple (tt bête)(je travaile (hum..) sous DEV-C++ :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int nb_alea;
clrscr ();
randomize ();
nb_alea = random (101);
printf ("%d",nb_alea);
printf ("%d",random (101));
getch ();
return 0 ;
}
Message édité par magiclazy le 09-12-2005 à 19:35:41
---------------
signature du message