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 :

Programme de carré magique qui ne fait rien


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ludus
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ludus

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Programme de carré magique qui ne fait rien
    Hello,
    Je dois faire un carré magique en C mais j'ai un petit problème voici 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    #include <stdio.h>
    #include <stdlib.h>
    #define TAILLE 5
    typedef struct tJeton{
     
        int nX;
        int nY;
     
    }tJeton;
     
    typedef enum Bool {true=1, false=0}Bool;
     
    void InitTab(int nTab[TAILLE][TAILLE]);
    void Moving(int nTab[TAILLE][TAILLE], tJeton jeton, int nCpt);
    void Warp(int nTab[TAILLE][TAILLE], tJeton jeton);
    void Place(int nTab[TAILLE][TAILLE], tJeton jeton, int nCpt);
    void Display(int nTab[TAILLE][TAILLE]);
    Bool CaseIsVoid(int nTab[TAILLE][TAILLE], tJeton jeton);
     
    int main()
    {
        int nTab[TAILLE][TAILLE];
        int nCpt=2;
        tJeton Jeton={3,2};
        InitTab(nTab[TAILLE][TAILLE]);
        nTab[3][2] = 1;
     
       for (nCpt; nCpt < TAILLE; nCpt++)
        {
            Moving(nTab[TAILLE][TAILLE],Jeton,nCpt);
     
        }
        Display(nTab[TAILLE][TAILLE]);
     
        return 0;
    }
     
    void InitTab(int nTab[TAILLE][TAILLE]){
     
        for (int i = 0; i < TAILLE; ++i)
        {
     
            nTab[i][i] = 0;
     
        }
     
    }
     
    void Warp(int nTab[5][5], tJeton jeton){
     
        if (jeton.nX == 6){
            jeton.nX = 1;
        }
     
    }
     
    Bool CaseIsVoid (int nTab[TAILLE][TAILLE], tJeton jeton){
     
        if (nTab[jeton.nX][jeton.nY]=0){
     
            return true;
     
        }else{
     
            return false;
     
        }
     
    }
     
    void Place(int nTab[5][5], tJeton jeton, int nCpt){
     
        nTab[jeton.nX][jeton.nY]=nCpt;
     
    }
     
    void Moving(int nTab[5][5], tJeton jeton, int nCpt){
     
        jeton.nX = jeton.nX+=1;
        jeton.nY = jeton.nY-=1;
        Warp(nTab, jeton);
        if (CaseIsVoid(nTab[5][5],jeton )== true)
        {
            Place(nTab[5][5], jeton, nCpt);
        }else{
            jeton.nX = jeton.nX-=1;
            jeton.nY = jeton.nY-=1;
            Warp(nTab, jeton);
            Place(nTab[5][5], jeton, nCpt);
        }
     
    }
     
    void Display(int nTab[TAILLE][TAILLE]){
     
    int cpt;
     
    for (cpt = 0; 1 < 5; cpt++)
    {
     
        printf("%d\n",nTab[cpt,1]);
        printf("%d\n",nTab[cpt,2]);
        printf("%d\n",nTab[cpt,3]);
        printf("%d\n",nTab[cpt,4]);
        printf("%d\n",nTab[cpt,5]);
    }
     
     
     
    }
    Tout fonctionne mais le programme ne me retourne rien...
    j'ai l'impression qu'il ne rentre pas dans les fonctions et termine le programme après la void InitTab qui sert a initialiser le tableau a 0, j'y comprend rien les boucles semblent ne pas fonctionnes ! :hap:
    Si quelqu’un peux m’aider se serais super merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Je pense plutôt que ton programme plante

    Explique nous le test de la boucle for ligne 98 for (cpt = 0; 1 < 5; cpt++).

    1 est toujours inférieur à 5


    Et sinon dans ton code :
    • Tu hardcodes la taille 5 au lieu d'utiliser ton typedef
    • Chainer les affectations, pourquoi pas. Mais ceci jeton.nX = jeton.nX+=1; je m'en méfierai

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 642
    Points
    7 642
    Par défaut
    Bonjour,

    Il y a de très nombreuses erreurs dans ton code. Le compilateur doit t'en signaler la plupart! Vérifie que les Warnings sont bien activés et lis les bien.
    Exemple : ligne 25 InitTab(nTab[TAILLE][TAILLE]); tu passes en paramètre à la fonction une case du tableau au lieu de passer le tableau lui-même, en plus la case est au dela du maximum. Il faut écrire InitTab( nTab );, ça doit faire bondir le compilateur.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Nageat Voir le message
    printf("%d\n",nTab[cpt,1]);
    Excellent !!! Et le plus amusant, c'est que cette instruction est légale (l'opérateur "virgule" séquence les valeurs et ne garde que la dernière). Au final ça revient à écrire printf("%d\n",nTab[1]);. Maintenant l'instruction fera-t-elle ce que tu espérais qu'elle fasse là c'est autre chose...

    Citation Envoyé par Nageat Voir le message
    Tout fonctionne
    Ca se voit...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Besoin d'aide pour une requête de MAJ (modif. de car.)
    Par ptitscrat dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 17h27
  2. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  3. [Kylix] besoin d'aide pour installer kylix3
    Par Sph@x dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2004, 13h53
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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