IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Exercice case accessibles


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut Exercice case accessibles
    Bonjour,

    je fais cet exo :


    mais le problème est que je ne n'arrive pas à détecter les cases accessibles.

    En fait, j'ai pensé à faire cela :
    compter le nombre de cases accessibles puis de faire la soustraction entre le nombre de cases et de cases accessibles pour enfin avoir le nombre de cases inaccessibles, ce qui me semble la meilleure solution, à mon avis.

    Mais quelle est la méthode pour compter les cases accessibles ?

    Merci.

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    Bonjour

    La solution est tout simplement d'utiliser un tableau (suivant le principe de la file) qui au départ ne contient que la case d'entrée du labyrinthe.

    Ensuite tu fais une boucle qui fait ceci :

    tant qu'il y a encore des cases dans la file,

    prendre la première case de la file, répertorier les cases libres qui sont autour et qui n'ont pas déjà été ajoutées à la file, les ajouter au bout de la file, et incrémenter un coup le compteur qui indique quelle est la première case de la file.

    Quand la boucle s'arrête, le compteur indique le nombre de cases répertoriées. C'est également le nombre que tu recherches
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    je ne connais pas le principe de la file, et je n'ai pas compris le principe.
    Est-ce qu'il existe une autre méthode ?

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par crow56 Voir le message
    je ne connais pas le principe de la file, et je n'ai pas compris le principe.
    Est-ce qu'il existe une autre méthode ?
    Ce genre d'exercice est fait pour te faire progresser, alors c'est le moment de se plonger dans les articles qui parlent des structures de données. Il y en a sur ce site et sur le web...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 47
    Par défaut
    voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #include <stdio.h>
     
    const int MAX_COLS = 1000;
    const int MAX_LIGS = 1000;
     
    int main()
    {
       int nbLigs, nbCols;
       int count = 0;
       scanf("%d%d", &nbLigs, &nbCols);
       for (int curLig = 0; curLig < nbLigs; curLig++)
       {
          char ligneLue[MAX_COLS+1][MAX_LIGS+1];
          scanf("%s", ligneLue);
          for (int curCol = 0; curCol < nbCols; curCol++)
          {
          	if (ligneLue[curCol][curLig] == '.')
          	{
          		if ( (ligneLue[curCol+1][curLig] == '.' && ligneLue[curCol-1][curLig] == '.')
          			|| (ligneLue[curCol][curLig+1] == '.' && ligneLue[curCol][curLig-1] == '.') )
          		{
          			count++;
          		}
          	}
          }
     
     
       }
       printf("%d\n", count);
       return 0;
    }
    mais il ne fonctonne pas, est-ce que vous pouvez me le corriger, svp ?

    Merci.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par crow56 Voir le message
    voilà mon code :
    <...>
    mais il ne fonctonne pas, est-ce que vous pouvez me le corriger, svp ?

    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    -------------- Build: Debug in hello ---------------
     
    Compiling: main.c
    C:\dev\hello\main.c:7: warning: function declaration isn't a prototype
    C:\dev\hello\main.c: In function `main':
    C:\dev\hello\main.c:14: warning: char format, different type arg (arg 2)
    Linking console executable: bin\Debug\hello.exe
    Output size is 18.77 KB
    Process terminated with status 0 (0 minutes, 1 seconds)
    0 errors, 2 warnings
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
             char ligneLue[MAX_COLS + 1][MAX_LIGS + 1];
             scanf ("%s", ligneLue);
    Ceci n'a aucun sens. Que cherches-tu à faire ?

Discussions similaires

  1. Exercices sur Access 2007
    Par Le Nihiliste dans le forum Modélisation
    Réponses: 1
    Dernier message: 27/03/2013, 18h29
  2. besoin d'exercice sur ACCESS
    Par claccla dans le forum Access
    Réponses: 8
    Dernier message: 07/01/2008, 07h46
  3. Select Case Access VBA
    Par solal57 dans le forum VBA Access
    Réponses: 6
    Dernier message: 12/11/2007, 17h09
  4. valeur case à cocher et base access
    Par cari dans le forum VBA Access
    Réponses: 34
    Dernier message: 08/02/2006, 17h09
  5. Recupération de cases cochées sous access
    Par geefo dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2005, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo