Réinitialiser en C

lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -
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.
Configuration: Wind.XP Pro sp2

13 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Qu'entends-tu par réinitialiser ? Réinitialiser quoi ?
    0
  2. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
  3. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    bibliothèques (stdlib.h, time.h) ???
    0
  4. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Arkan
     
    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
  7. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    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
  8. the F Messages postés 162 Statut Membre 13
     
    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
    1. the F Messages postés 162 Statut Membre 13
       
      autre chose ,un conseil ,
      c'est bien d'utiliser l'algorithmique descendante
      ecrire les fonctions
      ensuite etablir le main qui les appele
      0
  9. Arkan
     
    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
  10. the F Messages postés 162 Statut Membre 13
     
    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
  11. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  12. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    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
  13. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  14. lucas01 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   103
     
    Oui c'est vrai, désoler. Mais nouveau problème, la console afiche juste buf= // rien.

    HELP ME PLEASE
    0