Réinitialiser en C

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

  • Votes
  • Date
  • Date décroissante
  1. Oui c'est vrai, désoler. Mais nouveau problème, la console afiche juste buf= // rien.

    HELP ME PLEASE
    1. Contributeur
      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));
      1. 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);
        }
        1. Contributeur
          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
          1. 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 ****
            1. 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++ :)
              1. 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>
                1. autre chose ,un conseil ,
                  c'est bien d'utiliser l'algorithmique descendante
                  ecrire les fonctions
                  ensuite etablir le main qui les appele
              2. 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);
                }
                1. 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
                  1. 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++
                    1. 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.
                      1. Contributeur
                        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).