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 :

permuter elements structure


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut permuter elements structure
    Bonjour,


    je me prends la tete pour permuter des elements de ma structure...


    donc en gros je génère un nombre aléatoire compris entre 0 et 8 ensuite je stocke cette valeur dans un tableau.

    Je permute l'élément qui correspond dans ma structure que je mets a la fin et la fin devient l'élément généré et c'est là que le bas blesse...


    J'y étais arriver mais la je bloque...


    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    //
    //  main.c
     
     
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
     
     
    #define ML 11
    #define MC 8
     
     
    struct Pion {
     
        int id;
        char color[10];
     
    };
     
     
     
    void resetTab (void);
    void printTab (void);
    void indexMenu (void);
    void combiGen (void);
     
    struct Pion pion[8] = { {0,"Rouge"},{1,"Jaune"},{2,"Vert"},{3,"Bleu"},{4,"Orange"},{5,"Blanc"},{6,"Violet"},{7,"Fuchsia"} };
     
    int myTab[ML][MC];
     
     
    int main () {
     
     
        srand(8);
     
        indexMenu();
     
     
        return 0;
    }
     
    void resetTab (void) {
     
        int i, j;
     
        for (i=0; i<ML; i++) {
     
            for (j=0; j<MC; j++) {
     
                myTab[i][j] = 0;
            }
        }
    }
     
    void printTab (void) {
     
        int i, j;
     
        for (i=0; i<ML; i++) {
     
            for (j=0; j<MC; j++) {
     
                printf("myTab[i][j]");
            }
            printf("\n");
        }
    }
     
    void combiGen (void) {
     
        int max = 8;
        int i, color;
     
        for (i=0; i<4; i++) {
     
            color = rand()%max;
     
            myTab[0][i] = pion[color].id;
            temp = pion[color].id;
            pion[color].id = pion[7].id;
            pion[7].id = temp;
     
     
            printf("%d", myTab[0][i]);
     
            max--;
        }
     
     
    }
     
    void indexMenu (void) {
     
        int choose;
     
        do {
     
            printf("\nInput : ");
            scanf("%d", &choose);
            fpurge(stdin);
     
     
            switch (choose) {
                case 1:
                    combiGen();
                    break;
     
                case 2:
                    printf("2");
                    break;
     
                case 0:
                    choose = 0;
                    break;
     
                default:
                    printf("Choix Invalide 1 ou 2");
                    break;
            }
     
        } while (choose != 0);
     
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    qu'entends-tu par "permutation d'élément de structure" ?
    Une structure c'est une entité qui contient des champs, dont l'ordre, le type et le nom est défini à la compilation.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    euh donc admettons que je génère un nombre aléatoire qui est 4.

    je voudrais allez voir le 4 éléments de ma structure qui est:

    4,Orange

    ensuite ce couple d'éléments je voudrais le mettre à la fin de ma structure

    et le dernier couple d'éléments de ma structure qui est:

    7,Fuchsia

    viens en 4ème position

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Il s'agit d'un tableau, dont les champs sont une structure, mais c'est un tableau.
    S'il s'agit juste de faire ça, un algorithme simple serait comme ça:

    - récupérer la ligne 4
    - à partir de la ligne 5 à 8 (incluse)
    > bouger la ligne vers le haut (ligne 5 devient ligne 4, 6 -> 5, ...)
    - réinsérer la ligne 4 en position 8

    Pour inverser 2 éléments, il existe moultitudes d'exemples de code de permutation.
    Le cas classique pour les int est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void swap(int *a, int* b)
    {
      int c = *a;
      *a = *b;
      *b = c;
    }
    le principe est d'avoir une valeur intermédiaire pour stocker une valeur et réaliser la permutation par la suite.
    A adapter dans ton cas, et puisqu'il s'agit de chaînes de caractères la complexité sera plus importante.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    et sans pointeur c est possible?

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Essaie, tu comprendra pourquoi ce n'est pas possible.

Discussions similaires

  1. Rotation d'un element structurant
    Par ImagingAllthe dans le forum Images
    Réponses: 9
    Dernier message: 05/08/2010, 18h25
  2. choix de l'element structurant.
    Par ranell dans le forum MATLAB
    Réponses: 2
    Dernier message: 23/05/2007, 14h45
  3. Taille de l'element structurant (operateurs morphologiques)
    Par stranger dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 30/04/2007, 18h13
  4. Récupérer les élements d'une structure ...
    Par Franck.H dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 17/10/2005, 16h48
  5. structure de donnee et acces rapide à un element
    Par romeo9423 dans le forum C++
    Réponses: 2
    Dernier message: 01/09/2005, 09h35

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