Réinitialiser en C

Fermé
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 - 11 mai 2009 à 21:04
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 - 21 mai 2009 à 11:56
Bonjour,
j'ai chercher des commandes pour REINITIALISER EN C. Mais je n'est rien trouvé. Svp, pouvez-vous me donné le code. J'utilise la console encore. Et oui je débute au langage C. Pas de honte j'espere!!! lol.

Merci


Lucas.
A voir également:

13 réponses

mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 7 801
12 mai 2009 à 01:11
Qu'entends-tu par réinitialiser ? Réinitialiser quoi ?
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
15 mai 2009 à 21:47
Renitialiser TOUTE la console. Par exemple, quand je met la commande random ( pour choisir un mot au hasard ) il choisi toujours le même mot, ou chiffre ( 41 ). On a beau redémarer le programme sous .exe, toujours pareil.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
15 mai 2009 à 21:54
Normal, il faut initialiser le seed.
Rajoute en début de programme : srand(time(NULL)); en rajoutant les bonnes bibliothèques (stdlib.h, time.h).
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
15 mai 2009 à 23:42
bibliothèques (stdlib.h, time.h) ???
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
15 mai 2009 à 23:45
Voila mon code:

c'est un pendu, je debute donc pas de moquerie svp... :p lol...


#include <stdio.h>
#include <stdlib.h>
char tab[10][15];
char buf[15];

int main(int argc, char *argv[])
{
int nb, res, r=0, i;


res= rempli_tab();
nb= nombre_hasard();
res= affiche_mot(tab[nb]);
for(i=0; i<20; i++)
{
res=saisie_car();
if(res==10) continue;
r=comp_car(res, tab[nb]);
if(r==0) {
printf("penalite= %d\n", r);
}
else {
printf("buf = %s\n",buf);
if(strcmp(buf, tab[nb])==0) {
printf("Vous avez GAGNE !!!!\n");
break;
}
}
}

system("PAUSE");
return 0;
}

int rempli_tab()
{
sprintf(tab[0],"%s","clavier");
sprintf(tab[1],"%s","maison");
sprintf(tab[2],"%s","voiture");
sprintf(tab[3],"%s","pelouse");
sprintf(tab[4],"%s","rateau");
sprintf(tab[5],"%s","souvenir");
sprintf(tab[6],"%s","souris");
return(0);
}

int nombre_hasard()
{
int nb;
//srand((unsigned int)time(NULL));
nb=rand();

return(6);
}

int affiche_mot( mot)
char * mot;
{
int b;

buf[0]= mot[0];

for(b=1;b<strlen(mot);b++)
{
buf[b]='-';
}
buf[strlen(mot)-1]=mot[strlen(mot)-1];
printf("buf = %s\n",buf);
return(0);
}

int saisie_car()
{
char c;
c=getchar();
return(c);
}

int comp_car( c, mot)
char c;
char *mot;
{
int b, trouve=0;
for(b=1;b<strlen(mot);b++)
{
if(c==buf[b]){
printf("Cette lettre est DEJA DIT\n");
break;
}
if(mot[b]==c) { buf[b]=c; trouve=1; }

}
return(trouve);
}



il y est déjà...
Executer et compiler avec dev C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Une Bibliothèque est un ensemble de fonction qui permette de facilité la vie du programmeur. (je sais c'est pas tout a fait juste, mais c'est le plus simple a dire :) )

La pour utiliser srand() tu doit y ajouter en début de programme au niveau préprocesseur #include "stdlib.h" et de même pour time.h
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
16 mai 2009 à 00:04
Donc en gros faire sa?

#include "stdlib.h"
#include <stdio.h>
#include <stdlib.h> >>> ET ENLEVER CELLE CI????
char tab[10][15];
char buf[15];

int main(int argc, char *argv[])
{
int nb, res, r=0, i;


res= rempli_tab();
nb= nombre_hasard();
res= affiche_mot(tab[nb]);
for(i=0; i<20; i++)
{
res=saisie_car();
if(res==10) continue;
r=comp_car(res, tab[nb]);
if(r==0) {
printf("penalite= %d\n", r);
}
else {
printf("buf = %s\n",buf);
if(strcmp(buf, tab[nb])==0) {
printf("Vous avez GAGNE !!!!\n");
break;
}
}
}

system("PAUSE");
return 0;
}

int rempli_tab()
{
sprintf(tab[0],"%s","clavier");
sprintf(tab[1],"%s","maison");
sprintf(tab[2],"%s","voiture");
sprintf(tab[3],"%s","pelouse");
sprintf(tab[4],"%s","rateau");
sprintf(tab[5],"%s","souvenir");
sprintf(tab[6],"%s","souris");
return(0);
}

int nombre_hasard()
{
int nb;
//srand((unsigned int)time(NULL));
nb=rand();

return(6);
}

int affiche_mot( mot)
char * mot;
{
int b;

buf[0]= mot[0];

for(b=1;b<strlen(mot);b++)
{
buf[b]='-';
}
buf[strlen(mot)-1]=mot[strlen(mot)-1];
printf("buf = %s\n",buf);
return(0);
}

int saisie_car()
{
char c;
c=getchar();
return(c);
}

int comp_car( c, mot)
char c;
char *mot;
{
int b, trouve=0;
for(b=1;b<strlen(mot);b++)
{
if(c==buf[b]){
printf("Cette lettre est DEJA DIT\n");
break;
}
if(mot[b]==c) { buf[b]=c; trouve=1; }

}
return(trouve);
}
0
the F Messages postés 150 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 22 mars 2011 13
16 mai 2009 à 00:47
Que sgnifie ca :

#include "stdlib.h"
#include <stdio.h>
#include <stdlib.h> >>> ET ENLEVER CELLE CI????
char tab[10][15];
char buf[15];

Ya rien a enlever ni rien a ajouter (dans cette partie pour le moment )
EN FAIT l'instuction #include "XXXXX.X" designe l'inclusion d'un header {fichier d'entete} non predifini ce qui n'est pas le cas ici donc utilise <stdlib.h>
0
the F Messages postés 150 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 22 mars 2011 13
16 mai 2009 à 01:00
autre chose ,un conseil ,
c'est bien d'utiliser l'algorithmique descendante
ecrire les fonctions
ensuite etablir le main qui les appele
0
Mouai pour l'algo descendant ça dépend des points de vue, perso je préfère déclarer mes fonctions après le main. Enfin cela a condition que je reprenne le C pour abandonner le C++ :)
0
the F Messages postés 150 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 22 mars 2011 13
16 mai 2009 à 01:30
il faut formater le nombre aleatoire pour etre entre 1et 6 ce nombre va le retourner la fonction :nombre_hasard()
non pas ### return (6)###
car ce meme nombre designe le mot que le programma va choisir ..
*** c'est l'erreur flagrante des la premiere lecture les autres viendront prochainement ****
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
16 mai 2009 à 12:07
Tu fais :
#include <time.h>

Ensuite dans ton main(), srand(time(NULL));

Ensuite il ne faut pas mettre return 6; mais return nb; sinon cela sert à rien de passer par une valeur pseudo-aléatoire. Et enfin n'oublie pas de normer la valeur de retour de rand() qui te donne un nombre entre 0 et RAND_MAX.

Cdlt
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
21 mai 2009 à 11:50
Voila j'ai fait sa. Mais il me met une erreur la ou il y a en gras!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char tab[10][15];
char buf[15];

int main(int argc, char *argv[])
{
int nb, res, r=0, i;
srand(time(NULL))

res= rempli_tab(); ici.
nb= nombre_hasard();
res= affiche_mot(tab[nb]);
for(i=0; i<20; i++)
{
res=saisie_car();
if(res==10) continue;
r=comp_car(res, tab[nb]);
if(r==0) {
printf("penalite= %d\n", r);
}
else {
printf("buf = %s\n",buf);
if(strcmp(buf, tab[nb])==0) {
printf("Vous avez GAGNE !!!!\n");
break;
}
}
}

system("PAUSE");
return 0;
}

int rempli_tab()
{
sprintf(tab[0],"%s","clavier");
sprintf(tab[1],"%s","maison");
sprintf(tab[2],"%s","voiture");
sprintf(tab[3],"%s","pelouse");
sprintf(tab[4],"%s","rateau");
sprintf(tab[5],"%s","souvenir");
sprintf(tab[6],"%s","souris");
return(0);
}

int nombre_hasard()
{
int nb;
//srand((unsigned int)time(NULL));
nb=rand();

return nb; // Et la je vous est bien écouter, mais pas d'erreur. Pour l'instant.
}

int affiche_mot( mot)
char * mot;
{
int b;

buf[0]= mot[0];

for(b=1;b<strlen(mot);b++)
{
buf[b]='-';
}
buf[strlen(mot)-1]=mot[strlen(mot)-1];
printf("buf = %s\n",buf);
return(0);
}

int saisie_car()
{
char c;
c=getchar();
return(c);
}

int comp_car( c, mot)
char c;
char *mot;
{
int b, trouve=0;
for(b=1;b<strlen(mot);b++)
{
if(c==buf[b]){
printf("Cette lettre est DEJA DIT\n");
break;
}
if(mot[b]==c) { buf[b]=c; trouve=1; }

}
return(trouve);
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
21 mai 2009 à 11:52
N'oublie pas de préciser les messages d'erreurs que t'obtiens. Ils contiennent souvent l'explication.
Là, j'opterais pour un oubli de point-virgule de la ligne précédente.
srand(time(NULL));
0
lucas01 Messages postés 1835 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 15 octobre 2014 102
21 mai 2009 à 11:56
Oui c'est vrai, désoler. Mais nouveau problème, la console afiche juste buf= // rien.


HELP ME PLEASE
0