Partage
  • Partager sur Facebook
  • Partager sur Twitter

compte a rebour

    23 juillet 2006 à 11:51:11

    Bonjour je voudrais faire un compte à rebour comme dans lost les disparuts
    j'ai fait le compte à rebour et je voudrai que l'on puisse rentrer les nombres avant le fin du décompte si non le programe se ferme
    (tant que le décompte n'est pas à 00 : 00 :00 on ne peux pas quitter le programe)
    voici le code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    long demande(nombre1)
    {
    printf("Entrez le nombre 1 : ");
    scanf("%ld", &nombre1);
    }



    int sec1,sec2,min1,min2,h1,h2;
    char s;

    main()
    {
    system("CLS");

    h1 = 0;
    h2 = 1;
    min1 = 0;
    min2 = 1;
    sec1 = 3;
    sec2 = 0;
    printf("%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);

    do
    {
    sleep(1000);

    if(sec2 !=0)
    {
    sec2 = sec2 - 1;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    else if(sec1 !=0)
    {
    sec1 = sec1 - 1;
    sec2 = 9;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    else if(min2 !=0)
    {
    min2 = min2 - 1;
    sec1 = 5;
    sec2 = 9;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    else if(min1 !=0)
    {
    min1 = min1 - 1;
    min2 = 9;
    sec1 = 5;
    sec2 = 9;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    else if(h2 !=0)
    {
    h2 = h2 - 1;
    min1 = 5;
    min2 = 9;
    sec1 = 5;
    sec2 = 9;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    else
    {
    h1 = h1 - 1;
    h2 = 9;
    min1 = 5;
    min2 = 9;
    sec1 = 5;
    sec2 = 9;
    printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
    }
    }while(sec1 !=0 || sec2 !=0 || min1 !=0 || min2 !=0 || h1 !=0 || h2 !=0);


    printf("\n\nAppuyer sur n'importe quelle touche puis sur 'entrée' pour sortir");
    scanf("%s", &s);
    }

    j'aimerais que vous m'aidiez pour faire le reste
    Merci.

    (quand on tape les nombres le compteur repart au début)

    PS: je pars donc répondez svp par Mp ou par mail: claw62@hotamil.fr

    MERCI
    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2006 à 12:16:25

      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>

      long demande(nombre1)
      {
      printf("Entrez le nombre 1 : ");
      scanf("%ld", &nombre1);
      }


      int sec1,sec2,min1,min2,h1,h2;
      char s;

      main()
      {
      system("CLS");

      h1 = 0;
      h2 = 1;
      min1 = 0;
      min2 = 1;
      sec1 = 3;
      sec2 = 0;
      printf("%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);

      do
      {
      sleep(1000);

      if(sec2 !=0)
      {
      sec2 = sec2 - 1;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      else if(sec1 !=0)
      {
      sec1 = sec1 - 1;
      sec2 = 9;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      else if(min2 !=0)
      {
      min2 = min2 - 1;
      sec1 = 5;
      sec2 = 9;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      else if(min1 !=0)
      {
      min1 = min1 - 1;
      min2 = 9;
      sec1 = 5;
      sec2 = 9;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      else if(h2 !=0)
      {
      h2 = h2 - 1;
      min1 = 5;
      min2 = 9;
      sec1 = 5;
      sec2 = 9;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      else
      {
      h1 = h1 - 1;
      h2 = 9;
      min1 = 5;
      min2 = 9;
      sec1 = 5;
      sec2 = 9;
      printf("\r%d%d : %d%d : %d%d", h1, h2, min1, min2, sec1, sec2);
      }
      }while(sec1 !=0 || sec2 !=0 || min1 !=0 || min2 !=0 || h1 !=0 || h2 !=0);


      printf("\n\nAppuyer sur n'importe quelle touche puis sur 'entrée' pour sortir");
      scanf("%s", &s);
      }

      déja plus lisible

      Alors déjà:pourquoi

      int sec1,sec2,min1,min2,h1,h2 et char s sont des varibles global?

      A quoi sert la fonction demende qui n'est pas appelée?De plus elles ne renvoient rien a la fonction main elle demedne d'entrer un nombre
      mais ne le donne pas il faut mettre un return.

      Je n'ai pas trop regarde le reste mais rajoute a return a demende et au debut de main (apres avoir declarer des variables) tape demende(nombre):

      Ah aussi nombre1 n'as pas de type et tu dit au sacnf que c'est un int donc int nombre1 dans la declaration.

      Essaye déjà avec ce que j'ai dit.
      Et les autres variables aussi n'ont pas de type d'ailleur allez zou donne leur un type.

      EDIT:oh j'ai oublier un truc!tu déclare plusieur fois les variables,une fois globale et une fosi locale.
      EDIT2:Hé mais!Si il reste 09:59:59 sa s'arrete il faut mettre &&
      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2006 à 12:22:42

        4 8 15 16 23 42 hu

        D'aprés le dernier épisode le compteur est diminué à chaque fois de 100 puis de 10 et de 1 non ?
        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2006 à 16:33:20

          il va faloir attendre 108 min a chaque fois avant d'ecrire les chiffre comme dans la serie ??? :p
          j'ai un conseil pour que sa face mieu :D
          dans le film, le code est en vert, alors dans ta consol, le code devra être aussi.... en vert :p
          aller un pti peut d'aide et une creen :D

          www.cppfrance.com/codes_image/normal/27673.aspx
          Image utilisateur
          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2006 à 19:52:11

            Citation : claw62

            Bonjour je voudrais faire un compte à rebour comme dans lost les disparuts
            j'ai fait le compte à rebour<...>


            Une façon tordue d'écrire

            #include <stdio.h>
            #include <stdlib.h>
            #include "psleep/inc/psleep.h"
            /* http://mapage.noos.fr/emdel/clib/psleep/inc/psleep.h */

            int main ()
            {
               system ("CLS");
               {
                  int h = 1;
                  int m = 1;
                  int s = 30;
                  int end = 0;

                  do
                  {
                     printf ("\r%02d:%02d:%02d", h, m, s);
                     fflush (stdout);
                     msleep (1000);

                     if (h != 0 || m != 0 || s != 0)
                     {
                        s--;
                     }
                     if (s == 0)
                     {
                        if (m != 0 || h != 0)
                        {
                           s = 59;
                           m--;
                        }
                        if (m == 0)
                        {
                           if (h != 0)
                           {
                              m = 59;
                              h--;
                           }
                           else
                           {
                              end = 1;
                           }
                        }
                     }

                  }
                  while (!end);
               }
               printf ("\nBOUM !\n");

               return 0;
            }

            EDIT : reparaid...
            • Partager sur Facebook
            • Partager sur Twitter
            Music only !
              23 juillet 2006 à 19:53:01

              Je te recopie un peu, je le tente en VB. Bonne chance
              • Partager sur Facebook
              • Partager sur Twitter

              compte a rebour

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown